Compound Operators (Transact-SQL)

# Compound Operators (Transact-SQL)

SQL Server 2012

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.

## 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).

## Examples

The following examples demonstrate compound operations.

```DECLARE @x1 int = 27;
SET @x1 += 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;
```