SQL UPDATE 问题!

来源:百度知道 编辑:UC知道 时间:2024/05/02 17:48:05
我在SQL里的存储过程里用了两条UPDATE 语句,第二条是根据第一条修改后的值进行计算。可是结果好像第二条还是计算的老的结果。要运行两次存储过程,结果才对。哪位大哥指导一下。是不是有什么 SET 参数设置一下的啊。如:字段 a 的值是10, b 的值是20
update 表 set a=30
update 表 set b=a*3
可是结果会是 30 而不是 90 why?
谢谢大家啊。不过我的存储过程里有很多的UPDATE 语句啊,要改的记录也是不一定的啊。用变量不现实。也试过了用GO ,上面的变量全无效了,得重复定义N次变量!也不好。看来还是想办法让它运行两次存储过程了。

前一个update执行后,并没有commit,所以,数据库中的数据并没有改变。
你可以在存储过程中设一个变量@temp=30,然后update 表 set b=@temp*3
或者
在b表建立一个触发器

中间先commit

这样

update 表 set a=30
go
update 表 set b=a*30
go