У меня есть хранимая процедура на сервере 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 в таблице Record, но без ошибок и EndTimestamp.Я всегда хочу знать, что пользователь инициировал этот сохраненный процесс, но я также хочу всегда записывать, когда он завершится, либо по успешному завершению, либо по ошибке, либо при отмене.
Есть ли способ сделать это в SQL Server?
Спасибо