Compound Operators (Transact-SQL)

Compound operators execute some operation and set an original value to the result of the operation. For example, if a variable @x equals 35, then @x += 2 takes the original value of @x, add 2 and sets @x to that new value (37).

Transact-SQL provides the following compound operators:

Operator

Action

+=

Adds some amount to the original value and sets the original value to the result.

-=

Subtracts some amount from the original value and sets the original value to the result.

*=

Multiplies by an amount and sets the original value to the result.

/=

Divides by an amount and sets the original value to the result.

%=

Divides by an amount and sets the original value to the modulo.

&=

Performs a bitwise AND and sets the original value to the result.

^=

Performs a bitwise exclusive OR and sets the original value to the result.

|=

Performs a bitwise OR and sets the original value to the result.

 Applies to: SQL Server (SQL Server 2008 through current version), Azure SQL Database.

Syntax

```expression operator expression
```

Arguments

expression

Is any valid expression of any one of the data types in the numeric category.

Result Types

Returns the data type of the argument with the higher precedence. For more information, see Data Type Precedence (Transact-SQL).

Remarks

For more information, see the topics related to each operator.

Examples

The following examples demonstrate compound operations.

```DECLARE @x1 int = 27;
SET @x1 += 2 ;
SELECT @x1 AS Added_2;

DECLARE @x2 int = 27;
SET @x2 -= 2 ;
SELECT @x2 AS Subtracted_2;

DECLARE @x3 int = 27;
SET @x3 *= 2 ;
SELECT @x3 AS Multiplied_by_2;

DECLARE @x4 int = 27;
SET @x4 /= 2 ;
SELECT @x4 AS Divided_by_2;

DECLARE @x5 int = 27;
SET @x5 %= 2 ;
SELECT @x5 AS Modulo_of_27_divided_by_2;

DECLARE @x6 int = 9;
SET @x6 &= 13 ;
SELECT @x6 AS Bitwise_AND;

DECLARE @x7 int = 27;
SET @x7 ^= 2 ;
SELECT @x7 AS Bitwise_Exclusive_OR;

DECLARE @x8 int = 27;
SET @x8 |= 2 ;
SELECT @x8 AS Bitwise_OR;
```