事务 goto 小问题,但造成大麻烦
我的代码:
BEGIN TRANSACTION
DELETE FROM table1 if @@error<>0 goto WRONG
DELETE FROM table2 if @@error<>0 goto WRONG
...
COMMIT
WRONG: ROLLBACK
我用goto 目的是,如果有错误了就不要再处理后面的代码(量很大),直接跳到最后回滚
系统报错(我用AdoQuery)
我想是不是如果 commit 提交后 又要 ROOLBACL 所以报错 改了一下
DECLARE @bErrors as bit
BEGIN TRANSACTION SET @bErrors=0
DELETE FROM table1 if @@error<>0 begin set @bErrors=1 goto WRONG end
DELETE FROM table2 if @@error<>0 begin set @bErrors=1 goto WRONG end
...
COMMIT
WRONG: if @bErrors=1 ROLLBACK
在DEPHI 编译中报错 “不正常地定义了参数对象,提供了不一致或不完整的信息”
呵呵 ,我把代码拷贝到查询分析器里运行 一切正常???