SET CONCAT_NULL_YIELDS_NULL (Transact-SQL)

Область применения:yesSQL Server (все поддерживаемые версии) YesУправляемый экземпляр SQL Azure yesAzure Synapse Analytics yesAnalytics Platform System (PDW)

Управляет представлением результатов объединения в виде значений NULL или пустых строковых значений.

Важно!

В будущей версии параметр SQL Server CONCAT_NULL_YIELDS_NULL всегда будет иметь значение ON, а при попытке присвоить ему значение OFF любое приложение будет создавать ошибку. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется.

Topic link iconСинтаксические обозначения в 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)