Klasa SqlErrorLogEvent

Dotyczy:SQL Server

Zapewnia właściwości do przeglądania zdarzeń w określonym pliku logu SQL Server.

Syntax

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

Properties

Klasa SQLErrorLogEvent definiuje następujące właściwości.

Property Description
NazwaPliku Typ danych: ciągu

Typ dostępu: Tylko do odczytu

Nazwa pliku logu błędów.
NazwaInstancji Typ danych: ciągu

Typ dostępu: Tylko do odczytu

Kwalifikatory: Klucz

Nazwa instancji SQL Server, w której znajduje się plik logu.
Data logowania Typ danych: data/godzina

Typ dostępu: Tylko do odczytu

Kwalifikatory: Klucz

Data i godzina zdarzenia zostały zapisane w pliku logowym.
Message Typ danych: ciągu

Typ dostępu: Tylko do odczytu

Komunikat o zdarzeniu.
ProcessInfo Typ danych: ciągu

Typ dostępu: Tylko do odczytu

Informacje o ID sesji źródłowej (SPID) dla zdarzenia.

Remarks

Typ Name
MOF - sqlmgmprovider.mof(SQL Server 2022 (16.x) i późniejsze wersje)
- sqlmgmproviderxpsp2up.mof(SQL Server 2019 (15.x) i wcześniejsze wersje)
DLL sqlmgmprovider.dll
Namespace \root\Microsoft\SqlServer\ComputerManagement10

Example

Poniższy przykład pokazuje, jak pobrać wartości dla wszystkich zarejestrowanych zdarzeń w określonym pliku logu. Aby uruchomić przykład, zastąp <Instance_Name> nazwą instancji SQL Server, na przykład 'Instance1', a 'File_Name' nazwą pliku log błędów, np. '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

Comments

Gdy w instrukcji WQL nie podano NameInstanceName lub FileName, zapytanie zwraca informacje o domyślnej instancji oraz aktualnym pliku logu SQL Server. Na przykład następująca instrukcja WQL zwraca wszystkie zdarzenia logu z aktualnego pliku logu (ERRORLOG) na domyślnej instancji (MSSQLSERVER).

"SELECT * FROM SqlErrorLogEvent"

Zabezpieczenia

Aby połączyć się z plikiem logu SQL Server przez WMI, musisz posiadać następujące uprawnienia zarówno na komputerze lokalnym, jak i zdalnym:

  • Dostęp do odczytu przestrzeni nazw Root\Microsoft\SqlServer\ComputerManagement10 WMI. Domyślnie wszyscy mają dostęp do odczytu dzięki uprawnieniu "Enable Account".

  • Uprawnienia do odczytu do folderu, w którym znajdują się logi błędów. Domyślnie logi błędów znajdują się w następującej ścieżce (gdzie <Drive> oznacza dysku, na którym zainstalowałeś SQL Server, a <InstanceName> to nazwa instancji SQL Server):

    <Drive>:\Program Files\Microsoft SQL Server\MSSQL13.<InstanceName>\MSSQL\Log

Jeśli łączysz się przez zaporę, upewnij się, że w zaporze jest ustawiony wyjątek dla WMI na zdalnych komputerach docelowych. Więcej informacji można znaleźć w artykule Łączenie z WMI zdalnie z pomocą Windows Vista.