db2 Asked: 2012-01-12 12:04:06 +0800 CST2012-01-12 12:04:06 +0800 CST 2012-01-12 12:04:06 +0800 CST 记录所有用户错误消息以进行追溯性故障排除 772 假设我想将所有严重性为 16(及更高)的用户错误消息记录到数据库表中,以便进行一些追溯性的应用程序故障排除(因为“你能把错误消息发给我吗?”的答案通常是“不,我关闭了它。”)服务器端跟踪将成为最有效的选择,还是会有更好的方法? sql-server sql-server-2008 1 个回答 Voted Best Answer Martin Smith 2012-01-12T12:28:07+08:002012-01-12T12:28:07+08:00 服务器端跟踪的问题在于,在没有任何上下文的情况下记录错误消息可能不是很有帮助,并且收集该上下文需要跟踪和过滤更昂贵的事件,例如SQL:StatementCompleted 当您使用 SQL Server 2008 时,您可以为此查看扩展事件。这要高效得多,因为它不是捕获所有语句然后在没有错误的情况下丢弃那些语句,而是仅在出错时触发然后检索语句文本。对于一些示例代码,请在此处查看我的答案。尽管我建议您下载扩展事件 SSMS 插件并根据您的需要对其进行自定义。
服务器端跟踪的问题在于,在没有任何上下文的情况下记录错误消息可能不是很有帮助,并且收集该上下文需要跟踪和过滤更昂贵的事件,例如
SQL:StatementCompleted
当您使用 SQL Server 2008 时,您可以为此查看扩展事件。这要高效得多,因为它不是捕获所有语句然后在没有错误的情况下丢弃那些语句,而是仅在出错时触发然后检索语句文本。对于一些示例代码,请在此处查看我的答案。尽管我建议您下载扩展事件 SSMS 插件并根据您的需要对其进行自定义。