ALTER PROCEDURE test AS Begin TRANSACTIONupdate ls1 set ye=2003 --可正常更新 select * from lsa --lsa是不存在的表if @@error<>0 rollback TRANSACTION ELSE commit TRANSACTION
lsa不存在编译存储过程就不能通过。 begin TRANSACTION update .... if @@error <>0 '事务的回滚 begin rollback transaction raiserror('错误信息....',16,1) return 1 end commit TRANSACTION 这么简单的几句就不要写存储过程过程,加重数据库的负载,ado就有 事物,足够用了
gzhughie,你给的语句行不通,当运行到select * from lsa时已经中断了,可能jinfeng_wang说的有道理。
AS
Begin TRANSACTIONupdate ls1 set ye=2003 --可正常更新
select * from lsa --lsa是不存在的表if @@error<>0
rollback TRANSACTION
ELSE commit TRANSACTION
update ....
if @@error <>0 '事务的回滚
begin
rollback transaction
raiserror('错误信息....',16,1)
return 1
end
commit TRANSACTION
这么简单的几句就不要写存储过程过程,加重数据库的负载,ado就有
事物,足够用了
再说我现在只是一个实验的例子,并不是应用到真正的程序中