gpt4 book ai didi

sql-server - 使用try catch回滚的T-SQL错误处理,错误行已删除

转载 作者:行者123 更新时间:2023-12-03 07:59:43 25 4
gpt4 key购买 nike

我有以下构造。我注意到在while循环结束时删除了错误编号明显大于0的错误行。我不明白我在哪里犯错了。我是否需要catch部分中的第二个提交来提交错误号的更新?

while @@FETCH_STATUS = 0
begin try
begin transaction
[...insert something into a table here...]
set @countrec = @countrec + @@rowcount

update Alarmtable
set success = 0
where Recno = @recno

commit transaction

end try
begin catch
if @@trancount > 0 rollback transaction

select @error = error_number()
, @errormsg = error_message()

update Alarmtable
set success = @error
where Recno = @recno

if @@trancount > 0 commit transaction

end catch

fetch next from listofrecords into
@recno, @alarmcontent

end /* while */

close listofrecords
deallocate listofrecords

delete Alarmtable
where success = 0

最佳答案

删除了提交事务,并且错误条目也不再被删除。谢谢@kevchadders。

关于sql-server - 使用try catch回滚的T-SQL错误处理,错误行已删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31177476/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com