0
我有8个表。一位家长和7个孩子。在while循环内部并逐个从表中删除。 如果循环过程中发生任何错误,则返回所有事务。是否有可能在while循环中。在while循环内处理错误
实施例:
申报@count INT,@intFlag INT
开始尝试 组@count =(SELECT COUNT(ID)从MyTable的其中[日期] GETDATE() - 1之间和GETDATE( )) 如果@count> 0
开始 组@intFlag = 1
开始事务
while (@intFlag <= @Count)
begin
update MyTable1
set column1 = 1
where [Date] between getdate()-1 and getdate();
update MyTable2
set column2 = 1
where [Date] between getdate()-1 and getdate();
set @intFlag = @intFlag + 1
end;
提交
末
末尝试
开始抓 如果@@ TRANCOUNT> 0回滚 端部钩挂
如果处理其回滚所有子表中的任何错误交易
在循环之前启动事务。 如果您可以使用try-catch来检测错误,请在try块结束时使用commit事务在try-catch块中放置循环,并在catch块内回滚 – Sach 2014-12-09 12:37:01