SQL サーバーに次のようなストアド プロシージャがあります。
insert into Record(StartTimestamp) values (GETDATE())
SET @MyID = SCOPE_IDENTITY()
begin try
-- do something
UPDATE Record SET EndTimestamp = GETDATE() WHERE ID = @MyID
end try
begin catch
UPDATE Record SET EndTimestamp = GETDATE(), Error = ERROR_MESSAGE() WHERE ID = @MyID
end catch
アプリケーションから呼び出され、実行に数秒かかります。実行中にユーザーがキャンセルすると、レコード テーブルに StartTimestamp が表示されますが、エラーも EndTimestamp もありません。ユーザーがこのストアド プロシージャを開始したことを常に知りたいのですが、成功、エラー、またはキャンセルのいずれかによって終了したときも常に記録したいと考えています。
SQL Server でそれを行う方法はありますか?
ありがとう