私は次の手順を持っています。(構文は完璧ではありません。アイデアを提供したいだけです)。
begin tran
begin try
while loop
some condition, if true
raiseerror('error', 16, 1)
end try
begin catch
if transaction > 0
rollback tran
select error message
end catch
if transaction > 0
commit tran
質問:
レイズエラーはキャッチブロックを強制しますか? その場合、トランザクションは完全に (ループのすべての反復に対して) ロールバックされますか?
#1をケースにしたいのですが、ロールバックトランの後に「RETURN」を追加する必要がありますか?
繰り返しで何らかのエラーが発生した後でもループが継続しているように見えるため、この質問をしています。