Поделиться через


Класс SqlErrorLogEvent

Область применения: SQL Server

Предоставляет свойства для просмотра событий в указанном файле журнала SQL Server.

Синтаксис

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

Свойства

Класс SQLErrorLogEvent определяет следующие свойства.

Свойство Description
FileName Тип данных: строка

Тип доступа: только для чтения

Имя файла журнала ошибок.
InstanceName Тип данных: строка

Тип доступа: только для чтения

Квалификаторы: ключ

Имя экземпляра SQL Server, в котором находится файл журнала.
LogDate Тип данных: datetime

Тип доступа: только для чтения

Квалификаторы: ключ

Дата и время записи события в файл журнала.
Сообщение Тип данных: строка

Тип доступа: только для чтения

Сообщение о событии.
ProcessInfo Тип данных: строка

Тип доступа: только для чтения

Сведения об идентификаторе процесса сервера источника (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, запрос возвращает сведения для экземпляра по умолчанию и текущий файл журнала SQL Server. Например, следующая инструкция WQL возвращает все события журнала из текущего файла журнала (ERRORLOG) в экземпляре по умолчанию (MSSQLSERVER).

"SELECT * FROM SqlErrorLogEvent"

Безопасность

Чтобы подключиться к файлу журнала SQL Server через WMI, необходимо иметь следующие разрешения на локальных и удаленных компьютерах:

  • Доступ на чтение к пространству имен WMI Root\Microsoft\SqlServer\ComputerManagement10 . По умолчанию доступ для чтения задается для всех с помощью разрешения «Включить учетную запись».

  • Разрешение для чтения на папку, содержащую журналы ошибок. По умолчанию журналы ошибок находятся в следующем пути (где <диск представляет диск> , на котором установлен SQL Server и <Имя экземпляра> — это имя экземпляра SQL Server):

    <Диск>:\Program Files\Microsoft SQL Server\MSSQL13.<>Имя_экземпляра\MSSQL\Log

Если вы подключаетесь через брандмауэр, убедитесь, что исключение задано в брандмауэре для WMI на удаленных целевых компьютерах. Дополнительные сведения см. в статье "Удаленное подключение к WMI с Windows Vista".

См. также