我正在編寫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