我正在编写SQL Server 2005触发器。我想在触发器执行期间做一些日志记录,在我的日志表中使用INSERT语句。当执行过程中出现错误时,我想提出错误并取消导致触发器执行的操作,但不会丢失日志记录。达到此目的的最佳方法是什么?在SQL Server中登录表触发器
现在我的触发器会记录除了情况发生错误时的所有事情 - 因为ROLLBACK。需要RAISERROR语句来通知调用程序有关错误。
现在,我的错误处理代码如下所示:
if (@err = 1)
begin
INSERT INTO dbo.log(date, entry) SELECT getdate(), 'ERROR: ' + out from #output
RAISERROR (@msg, 16, 1)
rollback transaction
return
end
这就是我们做的 – HLGEM 2010-05-11 19:58:45
的确。我错过了这个选项,但是投了票。 – AlexS 2010-05-11 20:04:02