日期:2014-05-17  浏览次数:20391 次

求助关于存储过程执行
本帖最后由 yyr513 于 2013-08-07 15:06:08 编辑
最近有个问题困扰了我很久,一直想不通求助。
在存储过程中
例如

if not exists (select 1 from dbo.test)
begin
   update dbo.a
   set n=1
   
   add dbo.b
   (
      x,y
   )values
   (1, 2)

   update dbo.c
   set z =10
end
假设if条件满足,有没有可能出现这个存储过程 只执行 update dbo.a然后后面都不执行的?
或者执行了update dbo.a 和update dbo.c  然后中间的add不执行的情况?

我最近老是碰到这种情况,找不到原因!

------解决方案--------------------
顺序执行,有可能上面的执行了,中间的出错了或者断电了,下面的就不执行了。所以存储过程中为了保证数据的一致性,一般都要用事物,要么全部执行,要么一个不执行。