||= (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
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 estNULL
. - 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 NULL
des 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
Contenu connexe
- || (Concaténation de chaînes) (Transact-SQL)
- + (concaténation de chaînes) (Transact-SQL)
- += (Affectation après concaténation de chaînes) (Transact-SQL)
- ALTER DATABASE (Transact-SQL)
- CAST et CONVERT (Transact-SQL)
- Conversion de types de données (Moteur de base de données)
- Types de données (Transact-SQL)
- Expressions (Transact-SQL)
- Fonctions intégrées (Transact-SQL)
- Opérateurs (Transact-SQL)
- SELECT (Transact-SQL)
- Instructions SET (Transact-SQL)