复合运算符 (Transact-SQL)

适用于: SQL Server Azure SQL 数据库 Azure SQL 托管实例

复合运算符执行一些运算并将原始值设置为运算的结果。 例如,如果变量 @x 等于 35,则 @x += 2 会将 @x 的原始值加上 2 并将 @x 设置为该新值 (37)。

Transact-SQL 提供了以下复合运算符:

运算符 详细信息链接 操作
+= +=(加法赋值)(Transact-SQL) 将原始值加上一定的量,并将原始值设置为结果。
-= -=(减法赋值)(Transact-SQL) 将原始值减去一定的量,并将原始值设置为结果。
*= *=(乘法赋值)(Transact-SQL) 将原始值乘上一定的量,并将原始值设置为结果。
/= (除法赋值)(Transact-SQL) 将原始值除以一定的量,并将原始值设置为结果。
%= %=(取模赋值)(Transact-SQL) 将原始值除以一定的量,并将原始值设置为余数。
&= &= (按位和赋值) (Transact-SQL) 对原始值执行位与运算,并将原始值设置为结果。
^= ^=(位异或赋值)(Transact-SQL) 对原始值执行位异或运算,并将原始值设置为结果。
|= |=(位异或赋值)(Transact-SQL) 对原始值执行位或运算,并将原始值设置为结果。

语法

expression operator expression  

参数

expression
数值类别中任意一种数据类型的任意有效表达式

结果类型

返回优先级较高的参数的数据类型。 有关详细信息,请参阅数据类型优先级 (Transact-SQL)

注解

有关详细信息,请参阅与每个运算符相关的主题。

示例

下面的示例演示复合运算。

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;  

另请参阅

运算符 (Transact-SQL)
位运算符 (Transact-SQL)