SET CONCAT_NULL_YIELDS_NULL (Transact-SQL)

Область применения: SQL Server Управляемый экземпляр SQL Azure конечную точку аналитики платформы Аналитики Azure Synapse Analytics (PDW) в хранилище Microsoft Fabricв Microsoft Fabric

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

Примечание.

SET CONCAT_NULL_YIELDS_NULL OFF и CONCAT_NULL_YIELDS_NULL опция базы данных OFF устарели. Начиная с SQL Server 2017 (14.x), CONCAT_NULL_YIELDS_NULL он всегда настроен на ON. Не следует использовать нерекомендуемые возможности в новых приложениях. Дополнительные сведения см. в статье об устаревших функциях ядро СУБД в SQL Server 2017.

Соглашения о синтаксисе Transact-SQL

Синтаксис

Синтаксис для SQL Server, бессерверный пул SQL в Azure Synapse Analytics, Microsoft Fabric

SET CONCAT_NULL_YIELDS_NULL { ON | OFF }   

Синтаксис для Системы платформы Azure Synapse Analytics и Analytics (PDW)

SET CONCAT_NULL_YIELDS_NULL ON    

Замечания

Когда SET CONCAT_NULL_YIELDS_NULL ВКЛЮЧЕНО, объединение нулевого значения со строкой даёт результат NULL. Например, SELECT 'abc' + NULL дает в результате NULL. Когда SET CONCAT_NULL_YIELDS_NULL OFF, объединение нулевого значения со строкой даёт саму строку (null value рассматривается как пустая строка). Например, SELECT 'abc' + NULL дает в результате abc.

Если SET CONCAT_NULL_YIELDS_NULL не указано, применяется опция базы CONCAT_NULL_YIELDS_NULL данных.

Примечание.

SET SET CONCAT_NULL_YIELDS_NULLявляется той же установкой, что и CONCAT_NULL_YIELDS_NULL настройка .ALTER DATABASE

Параметр SET CONCAT_NULL_YIELDS_NULL устанавливается во время выполнения или выполнения, а не во время синтаксического анализа.

SET CONCAT_NULL_YIELDS_NULL должно быть включено при создании или изменении индексированных представлений, индексов на вычисленных столбцах, фильтрованных или пространственных индексах. Если SET CONCAT_NULL_YIELDS_NULLOFF, любые 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