T-SQL支持标准的UPDATE 语句,用于更新表中的数据。T-SQL 也支持UPDATE 语句的一种非标准用法,在UPDATE 语句中使用联接和变量
1.UPDATE 语句
UPDATE 语句是标准的SQL 语句,用于对表中数据 行的一个子集进行更新。为了标识作为更新目标的子集行,须要在WHERE 子句中指定一个谓词。在SET 子句中指定要更改的列和这些列的新值(或表达式),各列之间用逗号分隔。
UPDATE dbo.OrderDetails
SET discount=discount+0.05
WHERE productid=51;
注意:T-SQL 的“同时操作(all-at-once operation)”
2. 赋值 UPDATE
T-SQL 支持一种特有的UPDATE 语法,可以在对表中的数据进行更新的同时为变量赋值。
这种语法使你不须要使用单独的UPDATE 和SELECT 语句,就能完成同样的任务。
DECLARE @nextval AS INT;
UPDATE Sequence SET @nextval=val=val+1;
SELECT @nextval;
SET 子句中的赋值表达式从右向左执行,即首先把 val 的值设为 val+1,然后再把结果(val+1)赋值给变量@nextval。
使用这种特殊语法的UPDATE 语句是作为原子操作而运行的,因为它只须要访问一次数据,所以比使用单独的UPDATE 和SELECT 语句的效率要更高。