SQL Server 2008 中的错误日志记录
Posted
技术标签:
【中文标题】SQL Server 2008 中的错误日志记录【英文标题】:Error logging in SQL Server 2008 【发布时间】:2012-01-16 17:53:01 【问题描述】:一个非常简短直接的问题:我想使用 try..catch 捕获错误并将其记录到文件中。这在 SQL Server 2008 中是否可行?
任何方向,欢迎帮助。
【问题讨论】:
【参考方案1】:是的,你可以。
只需按照此处TRY...CATCH 的描述实现try catch。通过将错误写入表,可以在应用程序或 sql 中记录错误日志。
如果你想登录到一个文件,你可以使用 SQLCLR 来实现。在这里查看答案
How to log in T-SQL
您可以检查一些类似的问题。
Logging into table in SQL Server trigger
Best Practices - Stored Procedure Logging
另一种方法是使用Log4Sql
【讨论】:
为什么投反对票?唯一的答案,它带来了一个使用 sqlclr 写入文件的示例。【参考方案2】:使用 SQL Server Management Studio 或任何文本编辑器查看 SQL Server 错误日志。
默认情况下,错误日志位于Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\LOG\ERRORLOG
和ERRORLOG.n
文件中。
浏览Viewing the SQL Server Error Log页面
【讨论】:
【参考方案3】:像这样,不完全是文件,而是事件日志,我认为写入文件只能使用 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
【讨论】:
Msg 102, Level 15, State 1, Line 2 “Do”附近的语法不正确。消息 102,级别 15,状态 1,第 8 行 'error_message' 附近的语法不正确。 @blasto 已更正,但很明显。不是吗? Begin Catch 中的 ROLLBACK 将如何工作?以上是关于SQL Server 2008 中的错误日志记录的主要内容,如果未能解决你的问题,请参考以下文章
sql server 2008 日志文件已经到了最大值,还会记录日志吗
sql server 2008自动备份出现 出现 执行维护计划. MaintenancePlan (错误)密码和登录名不匹被