Поделиться через


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 и параметр базы данных OFF CONCAT_NULL_YIELDS_NULL не рекомендуется. Начиная с 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 установлен в 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