0
我有一个存储过程如下图所示:回滚事务多种查询
DECLARE @FinalQuery varchar(max), @TableName varchar(200)
DECLARE ListTable CURSOR FOR SELECT....
DECLARE @isError bit=0
OPEN ListTable
FETCH NEXT FROM ListTable INTO @TableName
WHILE @@FETCH_STATUS=0
BEGIN
//Some code to generate @FinalQuery to merge data into table @TableName
BEGIN TRY
EXEC(@FinalQuery)
END TRY
BEGIN CATCH
Set @IsError = 1
//Some code to write error to log file.
END CATCH
FETCH NEXT FROM ListTable INTO @TableName
END
CLOSE ListTable
DEALLOCATE ListTable
现在,我想事务和回退添加到我的存储过程。我希望执行所有动态的@FinalQuery查询,最后,当它结束时,如果存在任何错误(@ IsError = 1),则会回滚所有内容。我怎样才能做到这一点 ?
我得到这个错误:Microsoft分布式事务处理协调器(MS DTC)取消了分布式事务。更新了 – user2500561
,试试这个。 – glaeran
不同错误:当前事务不能提交,并且不能支持写入日志文件的操作。回滚事务。 – user2500561