insert into select from 批量插入数据事务

米修哥Coding 米修哥Coding 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
当其中一条数据插入不成功,回滚全部已插入数据。现在是回滚没有全部回滚,只有错误的记录没有插入。

SET @strSql = 'INSERT INTO ' + @strSqlTableName + '('+ @strSqlFiled +',userid,StaffNumbers) SELECT a.*,b.id,b.StaffNumbers FROM ##Temp a join ry_frmUser b on a.姓名=b.LastName'
##Temp表的数据是存储过程从Excel读取的数据
在存储过程里,试过了几种方法都不行
1. Set NOCOUNT ON;
Set XACT_ABORT ON;
begin tran
EXEC(@strSql)
commit tran


2. begin tran
begin try
EXEC(@strSql)
end try
begin catch
if(@@trancount > 0)
begin
print '插入失败,回滚...'
rollback tran
end
end catch
if(@@trancount >0)
begin
print '插入成功!'
commit tran
end


3. BEGIN TRAN trans1
EXEC(@strSql)
DROP TABLE ##Temp
set @flag='1'
IF @@ERROR<>0
goto ERROR_HANDLER;
COMMIT TRAN trans1
return;
ERROR_HANDLER:
BEGIN
ROLLBACK TRAN trans1;
set @flag='0'
END;


请高手指点,谢谢了!
...全文

相关推荐

评论 5
收藏 已收藏
分享
返回顶部
米修哥Coding
疑难问题 22,298 成员 121,727 内容