继续刚才的问题,两个存储过程间事务的问题,错误信息“不能在 INSERT-EXEC 语句内部使用 ROLLBACK 语句”,请高手帮忙,谢谢。 不能在 INSERT-EXEC 语句内部使用 ROLLBACK 语句-------------------------------------------老大说了,insert和exec语句内部不能用rollback 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 错误提示已经很清楚了, 不是事务处理不好, 是"不能在 INSERT-EXEC 语句内部使用 ROLLBACK 语句" IF NOT EXISTS (SELECT 1 FROM #T3) --在此执行rollback BEGIN ROLLBACK TRAN --这句报错 RETURN 没帖全代码?因该#t3没有数据,总会执行rollabck tran 那个存储过程的大概业务就是类似这个判断。我们原来有个存储过程,里面业务很麻烦,后来又在现有基础上增加了一些新需求,如果该以前的存储过程,有很大的风险,因为原来的存储过程暂时还要用,所以写一个新的存储过程,用来增加新的业务,并包含以前的业务,所以在新的存储过程用到了“exec原来的存储过程”,原来的存储过程里有事务,新的里面也有,所以原来的执行回滚就会报错。 create table tb(i int)insert into tb select 1begin tranexec ('insert into tb select 2select 1/0')if @@Error<>0rollback tranelsecommit transelect * from tb2把原来过程里的begin tran去掉,在新键的过程里加事务判断就可以了 最大标识问题 一条不会的作业 学习动态SQL写法,请指导 请问怎样利用触发器实现删除一个表中的一条记录之前把这条记录添加到另一个表中? SQL 怎么写存储过程? 关于数据累加查询的问题(请邹建大哥帮忙看看) 雪地裸跪求sql记录如何转换成字段显示 连接本机数据库错误:远程连接不允许!!!! 求一sql语句 SQL Server的数据复制问题,加急!请大侠帮助! 视图问题 这种操作的 触发器怎样写(SOS)?
BEGIN
ROLLBACK TRAN --这句报错
RETURN 没帖全代码?因该#t3没有数据,总会执行rollabck tran
insert into tb select 1begin tran
exec ('
insert into tb select 2
select 1/0')
if @@Error<>0
rollback tran
else
commit transelect * from tb2把原来过程里的begin tran去掉,
在新键的过程里加事务判断就可以了