Opérateurs composés (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBase de données SQL dans Microsoft Fabric

Les opérateurs composés exécutent une opération particulière et affectent une valeur d'origine au résultat de l'opération. Par exemple, si une variable @x est égale 35, @x += 2 prend la valeur d’origine de @x, ajoute 2et définit @x à cette nouvelle valeur (37).

Transact-SQL fournit les types d'opérateurs composés suivants :

Operator Lien vers des informations supplémentaires Action
+= Affectation d’addition Ajoute un montant à la valeur d'origine et affecte la valeur d'origine au résultat.
-= Affectation de soustraction Soustrait un montant de la valeur d'origine et affecte la valeur d'origine au résultat.
*= Affectation de multiplication Multiplie par un montant et affecte la valeur d'origine au résultat.
/= Affectation de division Divise par un montant et affecte la valeur d'origine au résultat.
%= Affectation de module Divise par un montant et affecte la valeur d'origine au modulo.
&= Affectation AND au niveau du bit Effectue un bit AND et définit la valeur d’origine sur le résultat.
^= Affectation OR exclusive au niveau du bit Exécute une valeur exclusive OR au niveau du bit et définit la valeur d’origine sur le résultat.
|= Affectation OR au niveau du bit Effectue un bit OR et définit la valeur d’origine sur le résultat.

Syntax

expression <operator> expression

Arguments

expression

Toute expression valide d’un des types de données de la catégorie numérique.

Types de retour

Retourne le type de données de l'argument ayant la priorité la plus élevée. Pour plus d’informations, consultez Priorité du type de données.

Remarks

Pour plus d'informations, consultez les rubriques relatives à chaque opérateur.

Examples

Les exemples suivants illustrent des opérations composées.

DECLARE @x1 AS INT = 27;
SET @x1 += 2;

SELECT @x1 AS Added_2;

DECLARE @x2 AS INT = 27;
SET @x2 -= 2;

SELECT @x2 AS Subtracted_2;

DECLARE @x3 AS INT = 27;
SET @x3 *= 2;

SELECT @x3 AS Multiplied_by_2;

DECLARE @x4 AS INT = 27;
SET @x4 /= 2;

SELECT @x4 AS Divided_by_2;

DECLARE @x5 AS INT = 27;
SET @x5 %= 2;

SELECT @x5 AS Modulo_of_27_divided_by_2;

DECLARE @x6 AS INT = 9;
SET @x6 &= 13;

SELECT @x6 AS Bitwise_AND;

DECLARE @x7 AS INT = 27;
SET @x7 ^= 2;

SELECT @x7 AS Bitwise_Exclusive_OR;

DECLARE @x8 AS INT = 27;
SET @x8 |= 2;

SELECT @x8 AS Bitwise_OR;