2010-06-05 104 views
0

我正在使用SQL Server 2008 Enterprise。當我們從存儲過程,來自存儲過程的SQL Server 2008錯誤消息

消息1205,級別13,狀態52, 過程Pr_FooV2,第9個服務 (進程ID 111)和另一個處理 碰上了這樣的錯誤消息是死鎖在鎖| 通信緩衝區資源,並且 已被選爲死鎖 受害者。重新運行交易。

我想知道這些消息是否存儲在日誌文件中?我搜索了我的SQL Server 2008安裝根目錄(在我的環境中,它是C:\ Program Files \ Microsoft SQL Server \ MSSQL10.MSSQLSERVER \ MSSQL \ Log)的日誌文件夾,但無法找到這樣的文件。

在此先感謝,

喬治

+2

沒有你需要通過運行SQL事件探查器並選擇死鎖圖形事件獲得死鎖圖形(以鎖部分)。一旦你捕獲了一個使用「提取事件數據」菜單選項將其保存爲xdl格式。 – 2010-06-05 09:10:57

+0

對不起,我的問題不在於如何檢測死鎖,而在於是否有任何方法讓SQL Server自己記錄消息。目前我登錄自己的ASP.Net應用程序。 – George2 2010-06-05 09:19:13

+1

我不確定是否有辦法讓它記錄特定的錯誤編號。在sys.messages中有一個is_event_logged我不確定是否有一些sysyem sp來更改值。如果沒有,您可以在用戶錯誤消息上設置跟蹤並按錯誤進行過濾。您還可以使用sql server代理警報對特定錯誤編號執行操作。 – 2010-06-05 09:58:30

回答

2

在SQL 2008,它看起來像您可以通過sp_altermessage

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

編輯:例爲嚴重的所有郵件進行批量操作14

​​
+0

酷!但是,如何打開以記錄所有消息(包含不同消息ID的所有錯誤消息,以及您建議的Url只提及如何打開特定消息ID的日誌記錄)? – George2 2010-06-05 10:15:58

+1

我會更新我的文章來處理這個問題,但是你最終會在事件日誌中加載一些消息,並且絕對沒有上下文,儘管如此。 – 2010-06-05 10:20:33

+0

「我會更新我的文章來處理這個問題」 - 謝謝您,期待您的解決方案! :-) 我正在運行鍼對我的數據庫的長期測試,我需要這些信息。 – George2 2010-06-05 10:29:46