TSQL BEGIN TRY および BEGIN CATCH ブロック パターンは、クライアント接続が失われたためにエラーをキャッチしません。失われたクライアント接続をキャッチして処理するにはどうすればよいですか?
個々のトランザクションのループの処理中に処理を示すフラグを設定しています。catch ブロックはエラー時にそのフラグをリセットしますが、クライアント接続が失われると、catch ブロックは実行されません...
疑似コード:
BEGIN TRY
SET FlagToIndicateProcessing = 1
LOOP START
BEGIN TRANS
DO WORK
COMMIT TRANS
LOOP END
SetSomeValues
SET FlagToIndicateProcessing = 0
END TRY
BEGIN CATCH
SetSomeValues
SET FlagToIndicateProcessing = 0
END CATCH