我在 SQL Server 中有一个存储过程,看起来像这样:
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
它从应用程序中调用,需要几秒钟才能运行。如果用户在它运行时取消它,我最终会在 Record 表中得到一个 StartTimestamp,但没有错误,也没有 EndTimestamp。我总是想知道用户启动了这个存储过程,但我也想总是记录它何时完成,无论是成功、错误还是被取消。
在 SQL Server 中有没有办法做到这一点?
谢谢