MSSQL数据库嵌套存储过程的事务控制
作者 佚名技术
来源 数据库编程
浏览
发布时间 2012-03-22
在MSSQL规范中,支持事务嵌套,不过在嵌套调用子存储过程时,要回滚事务,需把@@error传给最外层事务。举例如下: drop table testtb go create table testtb ( id int,name varchar(2) ) go --子过程 drop PRoc proc_insert_sub go create proc proc_insert_sub @errResult int out--返回错误值 as begin declare @errsum int declare @transname varchar(20) set @transname=''subtran'' set @errsum=0 --正确数据 insert testtb values(1,''00'') set @errsum=@errsum+@@error --错误数据 insert testtb values(2,''222'') set @errsum=@errsum+@@error --正确数据 insert testtb values(1,''11'') set @errsum=@errsum+@@error set @errResult=@errsum end go --主过程 drop proc proc_insert go create proc proc_insert as begin declare @errsum int declare @errsum1 int set @errsum=0 set @errsum1=0 begin tran exec proc_insert_sub @errsum1 out print @errsum1 set @errsum=@errsum+@errsum1 print @errsum print @@trancount if @errsum=0 commit tran else ROLLBACK TRANSACTION end go /*执行 exec proc_insert select * from testtb */ |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: SQL中CASE使用下一篇: SQL Server中的CTE
关于MSSQL数据库嵌套存储过程的事务控制的所有评论