SqlErrorLogEvent 类

适用于SQL Server

提供用于查看指定 SQL Server 日志文件中的事件的属性。

语法

class SQLErrorLogEvent
{
    stringFileName;
    stringInstanceName;
    datetimeLogDate;
    stringMessage;
    stringProcessInfo;
};

属性

SQLErrorLogEvent 类定义以下属性。

properties 说明
FileName 数据类型: 字符串

访问类型:只读

错误日志文件的名称。
InstanceName 数据类型:字符串

访问类型:只读

限定符:Key

日志文件所在的 SQL Server 实例的名称。
LogDate 数据类型:datetime

访问类型:只读

限定符:Key

在日志文件中记录该事件的日期和时间。
消息 数据类型: 字符串

访问类型:只读

事件消息。
ProcessInfo 数据类型: 字符串

访问类型:只读

与事件的源服务器进程 ID (SPID) 有关的信息。

注解

类型 名称
MOF - sqlmgmprovider.mof (SQL Server 2022 (16.x) 及更高版本)
- sqlmgmproviderxpsp2up.mof (SQL Server 2019 (15.x) 和早期版本)
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 语句中未提供 InstanceNameFileName,查询将返回默认实例和当前 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\MSSQL13 。<InstanceName>\MSSQL\Log

如果要通过防火墙进行连接,请确保在远程目标计算机上的 WMI 防火墙中设置异常。 有关详细信息,请参阅 从 Windows Vista 远程连接到 WMI。

另请参阅