提供屬性,用來檢視指定之 SQL Server 記錄檔中的事件。
語法
class SQLErrorLogEvent
{
stringFileName;
stringInstanceName;
datetimeLogDate;
stringMessage;
stringProcessInfo;
};
屬性
SQLErrorLogEvent 類別會定義下列屬性。
FileName |
資料類型:string 存取類型:唯讀
錯誤記錄檔的名稱。 |
InstanceName |
資料類型:string 存取類型:唯讀 限定詞:Key 記錄檔所在的 SQL Server 執行個體名稱。 |
LogDate |
資料類型:datetime 存取類型:唯讀 限定詞:Key
將事件記錄到記錄檔中的日期和時間。 |
Message |
資料類型:string 存取類型:唯讀
事件訊息。 |
ProcessInfo |
資料類型:string 存取類型:唯讀
事件之來源伺服器處理序識別碼 (SPID) 的相關資訊。 |
備註
MOF |
Sqlmgmproviderxpsp2up.mof |
DLL |
Sqlmgmprovider.dll |
命名空間 |
\root\Microsoft\SqlServer\ComputerManagement10 |
範例
下列範例會顯示如何擷取指定的記錄檔中所有已記錄事件的值。 若要執行範例,請使用 SQL Server 的執行個體名稱 (例如,'Instance1'),取代 <Instance_Name>,並使用錯誤記錄檔的名稱 (例如,ERRORLOG.1') 取代 'File_Name'。
on error resume next
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\MICROSOFT\SqlServer\ComputerManagement10")
set logEvents = objWmiService.ExecQuery("SELECT * FROM SqlErrorLogEvent WHERE InstanceName = '<Instance_Name>' AND FileName = 'File_Name'")
For Each logEvent in logEvents
WScript.Echo "Instance Name: " & logEvent.InstanceName & vbNewLine _
& "Log Date: " & logEvent.LogDate & vbNewLine _
& "Log File Name: " & logEvent.FileName & vbNewLine _
& "Process Info: " & logEvent.ProcessInfo & vbNewLine _
& "Message: " & logEvent.Message & vbNewLine _
Next
註解
當 WQL 陳述式中未提供 InstanceName 或 FileName 時,查詢將傳回預設執行個體和目前 SQL Server 記錄檔的資訊。 例如,下列 WQL 陳述式將傳回來自預設執行個體 (MSSQLSERVER) 上之目前記錄檔 (ERRORLOG) 的所有記錄事件。
"SELECT * FROM SqlErrorLogEvent"
安全性
若要透過 WMI 連接到 SQL Server 記錄檔,您必須在本機和遠端電腦上具有下列權限:
Root\Microsoft\SqlServer\ComputerManagement10 WMI 命名空間的讀取權限。 根據預設,每個人都可從啟用帳戶權限取得讀取權限。
包含錯誤記錄檔之資料夾的讀取權限。 根據預設,錯誤記錄檔位於下列路徑 (其中 <磁碟機> 表示安裝 SQL Server 的磁碟機,且 <InstanceName> 是 SQL Server 的執行個體名稱):
<Drive>:\Program Files\Microsoft SQL Server\MSSQL11.<InstanceName>\MSSQL\Log
如果透過防火牆連接,請確定您已在遠端目標電腦上的 WMI 防火牆中設定例外狀況。 如需詳細資訊,請參閱<從 Windows Vista 開始遠端連接到 WMI。