insert into select from 批量插入数据事务
当其中一条数据插入不成功,回滚全部已插入数据。现在是回滚没有全部回滚,只有错误的记录没有插入。
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;
请高手指点,谢谢了!