SET CONCAT_NULL_YIELDS_NULL (Transact-SQL)

S’applique à :yesSQL Server (toutes les versions prises en charge) YesAzure SQL Managed Instance yesAzure Synapse Analytics yesAnalytics Platform System (PDW)

Détermine si les résultats de concaténation sont considérés comme des valeurs nulles ou des chaînes vides.

Important

Dans une future version de SQL Server CONCAT_NULL_YIELDS_NULL sera toujours ON et toute application qui définira explicitement l'option à OFF générera une erreur. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement, et prévoyez de modifier les applications qui utilisent actuellement cette fonctionnalité.

Topic link iconConventions de la syntaxe Transact-SQL

Syntaxe

Syntaxe pour SQL Server et Pool SQL serverless dans Azure Synapse Analytics

    
SET CONCAT_NULL_YIELDS_NULL { ON | OFF }   

Syntaxe pour Azure Synapse Analytics et Analytics Platform System (PDW)

  
SET CONCAT_NULL_YIELDS_NULL ON    

Notes

Pour afficher la syntaxe Transact-SQL pour SQL Server 2014 et versions antérieures, consultez Versions antérieures de la documentation.

Notes

Si SET CONCAT_NULL_YIELDS_NULL a la valeur ON, la concaténation d'une valeur NULL avec une chaîne retourne un résultat NULL. Par exemple, SELECT 'abc' + NULL donne NULL. Si SET CONCAT_NULL_YIELDS_NULL a la valeur OFF, la concaténation d'une valeur NULL avec une chaîne renvoie la chaîne ; la valeur NULL est considérée comme une chaîne vide. Par exemple, SELECT 'abc' + NULL donne abc.

Si SET CONCAT_NULL_YIELDS_NULL n’est pas spécifié, le paramètre de l’option de base de données CONCAT_NULL_YIELDS_NULL s’applique.

Notes

SET CONCAT_NULL_YIELDS_NULL équivaut au paramètre CONCAT_NULL_YIELDS_NULL de ALTER DATABASE.

L'option SET CONCAT_NULL_YIELDS_NULL est définie lors de l'exécution, et non pas durant l'analyse.

SET CONCAT_NULL_YIELDS_NULL doit avoir la valeur ON lors de la création ou d’alertes sur les vues indexées, les index des colonnes calculées, les index filtrés ou les index spatiaux. Si SET CONCAT_NULL_YIELDS_NULL a la valeur OFF, toute instruction CREATE, UPDATE, INSERT ou DELETE dans des tables comportant des index de colonnes calculées, des index filtrés, des index spatiaux ou de vues indexées échoue. Pour plus d’informations sur les paramètres de l’option SET obligatoire avec les affichages indexés et les index sur des colonnes calculées, consultez « Remarques sur l’utilisation des instructions SET » dans Instructions SET (Transact-SQL).

Lorsque CONCAT_NULL_YIELDS_NULL a la valeur OFF, la concaténation de chaîne est impossible au-delà des limites du serveur.

Pour afficher la valeur actuelle de ce paramètre, exécutez la requête suivante.

DECLARE @CONCAT_SETTING VARCHAR(3) = 'OFF';  
IF ( (4096 & @@OPTIONS) = 4096 ) SET @CONCAT_SETTING = 'ON';  
SELECT @CONCAT_SETTING AS CONCAT_NULL_YIELDS_NULL; 

Exemples

L'exemple suivant illustre l'utilisation des deux paramètres 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  

Voir aussi

Instructions SET (Transact-SQL)
SESSIONPROPERTY (Transact-SQL)