SET CONCAT_NULL_YIELDS_NULL (Transact-SQL)
Область применения:SQL Server (все поддерживаемые версии)
Управляемый экземпляр SQL Azure
Azure Synapse Analytics
Analytics Platform System (PDW)
Управляет представлением результатов объединения в виде значений NULL или пустых строковых значений.
Важно!
В будущей версии параметр SQL Server CONCAT_NULL_YIELDS_NULL всегда будет иметь значение ON, а при попытке присвоить ему значение OFF любое приложение будет создавать ошибку. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется.
Синтаксические обозначения в Transact-SQL
Синтаксис
Синтаксис для SQL Server и Бессерверный пул SQL в Azure Synapse Analytics
SET CONCAT_NULL_YIELDS_NULL { ON | OFF }
Синтаксис для Azure Synapse Analytics и Система платформы аналитики (PDW)
SET CONCAT_NULL_YIELDS_NULL ON
Примечание
Ссылки на описание синтаксиса Transact-SQL для SQL Server 2014 и более ранних версий, см. в статье Документация по предыдущим версиям.
Remarks
Когда параметр SET CONCAT_NULL_YIELDS_NULL установлен в ON, объединение значения NULL со строкой дает в результате NULL. Например, SELECT 'abc' + NULL
дает в результате NULL
. Когда параметр SET CONCAT_NULL_YIELDS_NULL установлен в значение OFF, объединение значения NULL со строкой дает в результате исходную строку (значение NULL рассматривается как пустая строка). Например, SELECT 'abc' + NULL
дает в результате abc
.
Если параметр SET CONCAT_NULL_YIELDS_NULL не задан, применяется параметр CONCAT_NULL_YIELDS_NULL базы данных.
Примечание
SET CONCAT_NULL_YIELDS_NULL — это такая же установка, что и установка CONCAT_NULL_YIELDS_NULL для ALTER DATABASE.
Настройка SET CONCAT_NULL_YIELDS_NULL устанавливается во время выполнения или запуска, но не во время синтаксического анализа.
Параметр SET CONCAT_NULL_YIELDS_NULL должен быть в состоянии ON при создании или изменении представления индексов, индексов в вычисляемых столбцах, отфильтрованных индексов или пространственных индексов. Если параметру SET CONCAT_NULL_YIELDS_NULL задано состояние OFF, любое применение инструкций CREATE, UPDATE, INSERT и DELETE к таблицам с индексами на вычисляемых столбцах, отфильтрованным индексам, пространственным индексам или к индексированным представлениям завершится ошибкой. Дополнительные сведения о настройке обязательных параметров SET с индексированными представлениями и индексами по вычисляемым столбцам см. в разделе "Рекомендации по использованию инструкций SET" статьи Инструкции SET (Transact-SQL).
Когда параметр CONCAT_NULL_YIELDS_NULL установлен в OFF, объединение строк через границы сервера становится невозможным.
Чтобы просмотреть текущее значение для этого параметра, выполните следующий запрос.
DECLARE @CONCAT_SETTING VARCHAR(3) = 'OFF';
IF ( (4096 & @@OPTIONS) = 4096 ) SET @CONCAT_SETTING = 'ON';
SELECT @CONCAT_SETTING AS CONCAT_NULL_YIELDS_NULL;
Примеры
Следующий пример демонстрирует использование обеих настроек SET CONCAT_NULL_YIELDS_NULL
.
PRINT 'Setting CONCAT_NULL_YIELDS_NULL ON';
GO
-- SET CONCAT_NULL_YIELDS_NULL ON and testing.
SET CONCAT_NULL_YIELDS_NULL ON;
GO
SELECT 'abc' + NULL ;
GO
-- SET CONCAT_NULL_YIELDS_NULL OFF and testing.
SET CONCAT_NULL_YIELDS_NULL OFF;
GO
SELECT 'abc' + NULL;
GO
См. также:
Инструкции SET (Transact-SQL)
SESSIONPROPERTY (Transact-SQL)