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.
Importante |
---|
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 desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam. |
Convenções da 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_NULL não for especificado, será aplicada a configuração da opção de banco de dados CONCAT_NULL_YIELDS_NULL.
Observaçã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 Instruções 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