我在内循环中嵌套了带有事务的while循环,例如:
WHILE -- A
BEGIN
WHILE -- B
BEGIN
-- tx here
END
END
如果事务失败,我需要将控制从内部循环(B)转移到外部循环(A)。
答案 0 :(得分:3)
显然是伪的,但重要的部分是BREAK
;在CATCH
内。但是,它的行为方式将取决于实际故障的错误级别/严重程度。
WHILE ...
BEGIN
WHILE ...
BEGIN
BEGIN TRY
-- attempt tx here
END TRY
BEGIN CATCH
BREAK; -- this will bring you back to outer while
END CATCH
END
END
P.S。关于错误处理的绝对圣经是由Erland Sommarskog编写的,你一定要把它放在你的书签中: