求助关于存储过程执行
本帖最后由 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不执行的情况?
我最近老是碰到这种情况,找不到原因!
[解决办法]
顺序执行,有可能上面的执行了,中间的出错了或者断电了,下面的就不执行了。所以存储过程中为了保证数据的一致性,一般都要用事物,要么全部执行,要么一个不执行。