sp_readerrorlog (Transact-SQL)
適用於:SQL Server
可讓您讀取 SQL Server 或 SQL Server Agent 錯誤記錄檔的內容,並篩選關鍵詞。
語法
sp_readerrorlog
[ [ @p1 = ] p1 ]
[ , [ @p2 = ] p2 ]
[ , [ @p3 = ] N'p3' ]
[ , [ @p4 = ] N'p4' ]
[ ; ]
引數
[ @p1 = ] p1
您要檢視之記錄檔的整數值。 @p1為 int,預設值為 0
。 目前的錯誤記錄檔值為 0
。 前一個是 1
(ERRORLOG.1
),前一個是 2 (ERRORLOG.2
),依故。
[ @p2 = ] p2
您要檢視其記錄之產品的整數值。 @p2為 int,預設值為 NULL
。 用於 1
SQL Server 或 2
SQL Server Agent。 如果未指定值,則會使用 SQL Server 產品。
[ @p3 = ] N'p3'
檢視錯誤記錄檔時要篩選之字串的字串值。 @p3為 nvarchar(4000),預設值為 NULL
。
[ @p4 = ] N'p4'
您想要篩選的額外字串字串值,以在檢視錯誤記錄檔時進一步精簡搜尋。 @p4為 nvarchar(4000),預設值為 NULL
。 此參數會提供第一個字串搜尋 @p3的額外篩選。
傳回碼值
無。
結果集
顯示所要求錯誤記錄檔的內容。 如果使用篩選字串,則只會顯示符合這些字串的行。
備註
每次啟動 SQL Server 時,目前的錯誤記錄檔都會重新命名為 ERRORLOG.1
; ERRORLOG.1
變成 ERRORLOG.2
、 ERRORLOG.2
變成 ERRORLOG.3
等等。 sp_readerrorlog
可讓您讀取這些錯誤記錄檔中的任何一個,只要檔案存在。
權限
SQL Server 2019 (15.x) 和舊版需要伺服器上的 VIEW SERVER STATE 許可權。
SQL Server 2022 (16.x) 和更新版本需要伺服器上的 VIEW ANY ERROR LOG 許可權。
範例
下列範例會迴圈 SQL Server 錯誤記錄檔。
A. 讀取目前的 SQL Server 錯誤記錄檔
EXECUTE sp_readerrorlog;
B. 顯示先前的 SQL Server Agent 錯誤記錄檔
EXECUTE sp_readerrorlog 1, 2;
C. 尋找指出資料庫正在啟動的記錄訊息
EXECUTE sp_readerrorlog 0, 1, 'database', 'start';