Sammansatta operatorer (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-databas i Microsoft Fabric

Sammansatta operatorer kör en åtgärd och anger ett ursprungligt värde till resultatet av åtgärden. Om en variabel @x till exempel är 35@x += 2 lika med tar det ursprungliga värdet @xför , lägger till 2och anger @x till det nya värdet (37).

Transact-SQL tillhandahåller följande sammansatta operatorer:

Operator Länk till mer information Action
+= Tilläggstilldelning Lägger till en viss mängd i det ursprungliga värdet och anger det ursprungliga värdet till resultatet.
-= Subtraktionstilldelning Subtraherar en del belopp från det ursprungliga värdet och anger det ursprungliga värdet till resultatet.
*= Multiplikationstilldelning Multiplicerar med ett belopp och anger det ursprungliga värdet till resultatet.
/= Divisionstilldelning Dividerar med ett belopp och anger det ursprungliga värdet till resultatet.
%= Modulus-tilldelning Dividerar med en mängd och anger det ursprungliga värdet till modulo.
&= Bitvis OCH tilldelning Utför en bitvis AND och anger det ursprungliga värdet till resultatet.
^= Bitvis exklusiv ELLER-tilldelning Utför en bitvis exklusiv OR och anger det ursprungliga värdet till resultatet.
|= Bitvis ELLER tilldelning Utför en bitvis OR och anger det ursprungliga värdet till resultatet.

Syntax

expression <operator> expression

Arguments

expression

Ett giltigt uttryck för någon av datatyperna i den numeriska kategorin.

Returtyper

Returnerar datatypen för argumentet med högre prioritet. Mer information finns i Datatypspriorence.

Remarks

Mer information finns i avsnitten som rör varje operator.

Examples

I följande exempel visas sammansatta åtgärder.

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;