SqlErrorLogEvent 类
提供用于查看指定 SQL Server 日志文件中的事件的属性。
语法
class SQLErrorLogEvent
{
stringFileName;
stringInstanceName;
datetimeLogDate;
stringMessage;
stringProcessInfo;
};
属性
SQLErrorLogEvent 类定义以下属性。
FileName | 数据类型:string 访问类型:只读 错误日志文件的名称。 |
InstanceName | 数据类型:string 访问类型:只读 限定符:Key 日志文件所在的 SQL Server 实例的名称。 |
LogDate | 数据类型:datetime 访问类型:只读 限定符:Key 在日志文件中记录该事件的日期和时间。 |
消息 | 数据类型:string 访问类型:只读 事件消息。 |
ProcessInfo | 数据类型:string 访问类型:只读 与事件的源服务器进程 ID (SPID) 有关的信息。 |
注解
MOF | Sqlmgmproviderxpsp2up.mof |
DLL | Sqlmgmprovider.dll |
命名空间 | \root\Microsoft\SqlServer\ComputerManagement10 |
示例
下面的示例显示如何检索指定的日志文件中所有记录的事件的值。 若要运行该示例,请将Instance_Name>替换为 <SQL Server 实例的名称(如“Instance1”),并将“File_Name”替换为错误日志文件的名称,例如“ERRORLOG.1”。
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\MSSQL12 .<InstanceName>\MSSQL\Log
如果您在通过防火墙进行连接,则请确保在防火墙中针对远程目标计算机上的 WMI 设置例外。 有关详细信息,请参阅 从 Windows Vista 远程连接到 WMI。