【发布时间】:2012-01-16 17:53:01
【问题描述】:
一个非常简短直接的问题:我想使用 try..catch 捕获错误并将其记录到文件中。这在 SQL Server 2008 中是否可行?
任何方向,欢迎帮助。
【问题讨论】:
标签: sql sql-server-2008 logging
一个非常简短直接的问题:我想使用 try..catch 捕获错误并将其记录到文件中。这在 SQL Server 2008 中是否可行?
任何方向,欢迎帮助。
【问题讨论】:
标签: sql sql-server-2008 logging
是的,你可以。
只需按照此处TRY...CATCH 的描述实现try catch。通过将错误写入表,可以在应用程序或 sql 中记录错误日志。
如果你想登录到一个文件,你可以使用 SQLCLR 来实现。在这里查看答案
您可以检查一些类似的问题。
Logging into table in SQL Server trigger
Best Practices - Stored Procedure Logging
另一种方法是使用Log4Sql
【讨论】:
使用 SQL Server Management Studio 或任何文本编辑器查看 SQL Server 错误日志。
默认情况下,错误日志位于Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\LOG\ERRORLOG 和ERRORLOG.n 文件中。
【讨论】:
像这样,不完全是文件,而是事件日志,我认为写入文件只能使用 CLR 过程:
BEGIN TRY
Do some error
END TRY
Begin CATCh
Declare @error nvarchar(max) = error_message()+' your data'
exec master..xp_logevent 50001, @error, 'error'
--Notify host application
RAISERROR(@error, 16, 1)
END CATCH
【讨论】: