【发布时间】:2010-09-01 04:54:11
【问题描述】:
我有一个 update 声明,格式如下:
declare @v as int
update tbl
set @v=tbl.a=(select sum(amount) from anothertable at where at.x = tbl.y),
tbl.b = @v/2
我想使用变量的原因是避免使用子查询两次。问题是我没有找到任何说明这是安全的参考资料。第二个赋值(即 tbl.b = @v/2)总是在第一个赋值之后进行评估吗?
select 语句的评估顺序无法保证。更新语句也是如此吗?
非常感谢。
【问题讨论】:
标签: sql sql-server