复合运算符 (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
注意
若要查看 SQL Server 2014 (12.x) 及更早版本的 Transact-SQL 语法,请参阅早期版本文档。
参数
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;