SqlErrorLogEvent 类
提供用于查看指定 SQL Server 日志文件中的事件的属性。
语法
class SQLErrorLogEvent
{
stringFileName;
stringInstanceName;
datetimeLogDate;
stringMessage;
stringProcessInfo;
};
属性
SQLErrorLogEvent 类定义以下属性。
FileName |
数据类型:string 访问类型:只读
错误日志文件的名称。 |
InstanceName |
数据类型:string 访问类型:只读 限定符:Key 日志文件所在的 SQL Server 实例的名称。 |
LogDate |
数据类型:datetime 访问类型:只读 限定符:Key
在日志文件中记录该事件的日期和时间。 |
Message |
数据类型:string 访问类型:只读
事件消息。 |
ProcessInfo |
数据类型:string 访问类型:只读
与事件的源服务器进程 ID (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 命名空间的读取访问权限。 默认情况下,每个人都可以通过“启用帐户”权限获得读取权限。
包含错误日志的文件夹的读取权限。 默认情况下,错误日志位于以下路径中(其中,<Drive> 表示安装了 SQL Server 的驱动器,<InstanceName> 是 SQL Server 实例的名称):
<Drive>:\Program Files\Microsoft SQL Server\MSSQL11.<InstanceName>\MSSQL\Log
如果您在通过防火墙进行连接,则请确保在防火墙中针对远程目标计算机上的 WMI 设置例外。 有关详细信息,请参阅 Connecting to WMI Remotely Starting with Windows Vista(使用 Windows Vista 连接到远程启动的 WMI)。