首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL 2005/8怪异的更新“黑术”

SQL 2005/8怪异的更新“黑术”
EN

Stack Overflow用户
提问于 2010-11-03 05:59:12
回答 1查看 1.8K关注 0票数 2

您好,所有SQL Server黑带大师都在这里。

我有一个简单的问题需要解决。我正在尝试对一张表做一些奇怪的更新。表的具体结构并不重要,我的问题基本上可以简化为以下问题:

代码语言:javascript
复制
update SalesTotal
set @total = total = @total + sales,
@flag = flag = case when @flag = 1 then 0 
                    when @total > x then 1
                    else 0 end

问题是我能相信@total变量会有一个新的值ie。将在第二个设置部分之前执行,或者它将包含一个“旧”值(来自上一次赋值),或者它是未定义的。我解决这个问题已经有一段时间了,找不到解决方案,这对我的更新真的很重要(我想一次性更新一个表)。我想要更新的其中一个值依赖于另一个值(在同一行中),因此它在单个更新中工作的唯一方法是它是否工作。

希望你能帮助我

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-11-03 06:06:00

不,您不能假设执行的命令顺序。绝对不能保证表中更新跟踪位置的顺序,绝对不能保证@variable为每个表集更新一次,并且更新很可能与Halloween protection的假脱机步骤一起运行。

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4082481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档