SET CONCAT_NULL_YIELDS_NULL (Transact-SQL)

Controla se os resultados de concatenação serão ou não tratados como valores de cadeia de caracteres nulos ou vazios.

Observação importanteImportante

Em uma versão futura do SQL Server, CONCAT_NULL_YIELDS_NULL sempre estará ON e quaisquer aplicativos que definam explicitamente a opção como OFF gerarão um erro. Evite usar esse recurso em novos trabalhos de desenvolvimento e planeje modificar os aplicativos que o utilizam atualmente.

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Sintaxe

SET CONCAT_NULL_YIELDS_NULL { ON | OFF } 

Comentários

Quando SET CONCAT_NULL_YIELDS_NULL for ON, a concatenação de um valor nulo com uma cadeia de caracteres gera um resultado NULL. Por exemplo, SELECT 'abc' + NULL gera NULL. Quando SET CONCAT_NULL_YIELDS_NULL for OFF, a concatenação de um valor nulo com uma cadeia de caracteres gera a própria cadeia de caracteres (o valor nulo é tratado como uma cadeia de caracteres vazia). Por exemplo, SELECT 'abc' + NULL gera abc.

Se SET CONCAT_NULL_YIELDS não for especificado, será aplicada a configuração da opção do banco de dados CONCAT_NULL_YIELDS_NULL.

ObservaçãoObservação

SET CONCAT_NULL_YIELDS_NULL é a mesma configuração CONCAT_NULL_YIELDS_NULL de ALTER DATABASE.

A configuração de SET CONCAT_NULL_YIELDS_NULL é definida na execução ou em tempo de execução, e não no momento da análise.

SET CONCAT_NULL_YIELDS_NULL deve ser ON quando você estiver criando ou alterando índices em colunas computadas ou exibições indexadas. Se SET CONCAT_NULL_YIELDS_NULL for OFF, toda instrução CREATE, UPDATE, INSERT e DELETE nas tabelas com índices em colunas computadas ou exibições indexadas falhará. Para obter mais informações sobre as configurações da opção SET com exibições indexadas e índices em colunas computadas, consulte "Considerações sobre o uso das instruções SET" em SET (Transact-SQL).

Quando CONCAT_NULL_YIELDS_NULL é definido como OFF, a concatenação de cadeia de caracteres entre limites de servidor não acontece.

Exemplos

O exemplo a seguir mostra o uso das duas configurações 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