SET CONCAT_NULL_YIELDS_NULL (Transact-SQL)

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

Важное примечаниеВажно!

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

Значок ссылки на разделСинтаксические обозначения в Transact-SQL

Синтаксис

SET CONCAT_NULL_YIELDS_NULL { ON | OFF } 

Замечания

Когда параметр 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 не определен, применяется параметр базы данных 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, объединение строк через границы сервера становится невозможным.

Примеры

Следующий пример демонстрирует использование обеих настроек 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

См. также

Справочник

Основные понятия