我想在一个存储过程中写多个事务,就是一段SQL完成后就提交该怎么写我原来是这样写的:
begin tran tran_1
insert ……
if (@@errors <> 0)
begin
roolback tran tran_1
end
commit tran tran_1begin tran tran_2
insert ……
if (@@errors <> 0)
begin
roolback tran tran_2
end
commit tran tran_2但是这样写,但tran_2的语句失败后不能回滚了。 请问这样的多个事务又不是嵌套事务该如何写?
begin tran tran_1
insert ……
if (@@errors <> 0)
begin
roolback tran tran_1
end
commit tran tran_1begin tran tran_2
insert ……
if (@@errors <> 0)
begin
roolback tran tran_2
end
commit tran tran_2但是这样写,但tran_2的语句失败后不能回滚了。 请问这样的多个事务又不是嵌套事务该如何写?
解决方案 »
- 如何使用SQL2005调用Excel数据?
- 经典问题, 查询性别"1,0"转"男女"?
- 没有搞懂的SQL语句,分开与合在一起的查询结果不一样呢?!
- 触发器和存储过程有什么区别?
- 数据检索问题请大家指教下!
- access做的一个系统怎么把它原程序搞出来,做一些修改
- 一个看似很简单的问题,可都困扰我好几天了,请高手们帮帮忙吧
- 改了administrator密码,mssql 就启动不了?
- 有哪些方法可以提高数据库的查询性能,速度?欢迎各位~~
- 在线等待,请各位高手帮忙解决,SELECT语句合并问题
- 求分类汇总...............
- 進程sqlservr.exe cpu達100%,該如何解決?
insert ……insert ……commit tran tran_1
set xact_abort on
begin tran
insert ……
insert ……
commit
begin tran
insert ……
set @error=abs(@@error)
insert ……
set @error=@error+abs(@@error)
if @error<>0
rollback
else
commit2000