Partager via


||= (affectation composée) (Transact-SQL)

S’applique à : Azure SQL Database

La ||= concaténation avec l’opérateur d’assignation composée peut être utilisée pour concaténer une expression avec la valeur d’une variable de chaîne binaire ou de caractère, puis affecter l’expression résultante à la variable.

L’opérateur ||= prend en charge le même comportement que l’opérateur += pour les chaînes caractères et binaires.

Conventions de la syntaxe Transact-SQL

Syntaxe

variable ||= expression

Remarque

Pour afficher la syntaxe Transact-SQL pour SQL Server 2014 (12.x) et versions antérieures, consultez la Documentation sur les versions antérieures.

Arguments

variable

Variable T-SQL de type caractère : char, varchar, nchar, nvarchar, varchar(max), ou nvarchar(max), ou de type binaire : binaire ou varbinary ou varbinary(max).

expression

Expression de caractère ou binaire. Si l’expression n’est pas du type caractère, le type de l’expression doit être converti implicitement en chaîne de caractères.

Types de retour

Affecte le résultat de l’opérateur de concaténation pour les chaînes de caractères à la variable.

  • Si la variable ou l’expression est une valeur SQL NULL , le résultat de l’expression concaténée est NULL.
  • Si la variable est d’un type de données objet volumineux (LOB) (varchar(max) ou nvarchar(max)), l’expression résultante est varchar (max) ou nvarchar(max).
  • Si la variable est d’un type LOB varbinary(max), l’expression résultante est varbinary (max).
  • Si la variable n’est pas un type métier, le résultat est tronqué à la longueur maximale du type déclaré de la variable.

Notes

Si le résultat de la concaténation de chaînes dépasse la limite des 8 000 octets, il sera tronqué. Toutefois, si au moins une des chaînes concaténées est un type de valeur volumineux, la troncation ne se produit pas.

Pour concaténer des chaînes binaires et tout caractère compris entre ces chaînes, il faut utiliser une conversion explicite en données de type caractère.

Chaînes et caractères de longueur zéro

L’opérateur ||= (concaténation de chaîne) se comporte différemment lorsqu’il fonctionne avec une chaîne vide et de longueur nulle que lorsqu’il fonctionne avec NULLdes valeurs inconnues ou avec des valeurs inconnues. Une chaîne de caractères de longueur nulle peut être spécifiée par deux guillemets simples sans caractères à l'intérieur. Une chaîne binaire de longueur nulle peut être spécifiée comme 0x sans aucune valeur d’octet spécifiée dans la constante hexadécimale. La concaténation d'une chaîne de longueur nulle concatène toujours deux chaînes spécifiées.

Concaténation des valeurs NULL

Comme pour les opérations arithmétiques effectuées sur NULL les valeurs, lorsqu’une NULL valeur est ajoutée à une valeur connue, le résultat est généralement une NULL valeur. Une opération de concaténation de chaîne effectuée avec une NULL valeur doit également produire un NULL résultat.

L’opérateur ||= ne respecte pas l’option SET CONCAT_NULL_YIELDS_NULL et se comporte toujours comme si le comportement ANSI SQL est activé, ce qui NULL génère si l’une des entrées est NULL. Il s’agit de la principale différence de comportement entre les += opérateurs de ||= concaténation. Pour plus d’informations, voir SET CONCAT_NULL_YIELDS_NULL.

Exemples

R. Utiliser la concaténation avec l’affectation composée pour les chaînes

DECLARE @v1 varchar(10) = 'a'
SET @v1 ||= 'b';
SELECT @v1

Voici le jeu de résultats obtenu.

ab

B. Utiliser la concaténation avec l’affectation composée pour les données binaires

DECLARE @v2 varbinary(10) = 0x1a;
SET @v2 ||= 0x2b;
select @v2;

Voici le jeu de résultats obtenu.

0x1A2B