存储过程中的SQL Server 2008错误消息

时间:2010-06-05 09:00:34

标签: sql-server-2008 logging

我正在使用SQL Server 2008 Enterprise。当我们从存储过程中遇到这样的错误消息时,

  

消息1205,等级13,状态52,等等   处理Pr_FooV2,第9行服务   (进程ID 111)和另一个进程   是锁定的死锁   通信缓冲资源,和   被选为僵局   受害者。重新运行该交易。

我想知道这些消息是否存储在日志文件中?我搜索了我的SQL Server 2008安装根的日志文件夹(在我的环境中,它是C:\ Program Files \ Microsoft SQL Server \ MSSQL10.MSSQLSERVER \ MSSQL \ Log),但是找不到这样的文件。

提前感谢,

乔治

1 个答案:

答案 0 :(得分:2)

在SQL 2008中,您似乎可以通过sp_altermessage

http://sqlblog.com/blogs/tibor_karaszi/archive/2009/05/14/sp-altermessage-is-back-in-business.aspx

编辑:对严重性为14的所有消息执行批处理操作的示例

DECLARE @severity INT
SET @severity = 14

declare @dynsql nvarchar(max)

set @dynsql = ''

SELECT   
    @dynsql = @dynsql + 'EXEC sp_altermessage
     @message_id = ' + CAST(message_id AS varchar(10)) + '
    ,@parameter = ''WITH_LOG''
    ,@parameter_value = ''true'' ;
'
FROM
(
SELECT DISTINCT message_id 
FROM         sys.messages
WHERE  is_event_logged=0 AND severity=@severity
) D

EXEC sp_executesql @dynsql