我正在使用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),但是找不到这样的文件。
提前感谢,
乔治
答案 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