Freigeben über


SqlErrorLogEvent-Klasse

Gilt für: SQL Server

Stellt Eigenschaften zum Anzeigen von Ereignissen in einer angegebenen SQL Server-Protokolldatei bereit.

Syntax

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

Eigenschaften

Die SQLErrorLogEvent-Klasse definiert die folgenden Eigenschaften.

Eigenschaft Beschreibung
FileName Datentyp: Zeichenfolge

Zugriffstyp: Schreibgeschützt

Der Name der Fehlerprotokolldatei.
InstanceName Datentyp: Zeichenfolge

Zugriffstyp: Schreibgeschützt

Kennzeichner: Schlüssel

Der Name der Instanz von SQL Server, in der sich die Protokolldatei befindet.
LogDate Datentyp: datetime

Zugriffstyp: Schreibgeschützt

Kennzeichner: Schlüssel

Datum und Uhrzeit, zu denen das Ereignis in der Protokolldatei aufgezeichnet wurde.
`Message` Datentyp: Zeichenfolge

Zugriffstyp: Schreibgeschützt

Die Ereignismeldung.
ProcessInfo Datentyp: Zeichenfolge

Zugriffstyp: Schreibgeschützt

Informationen zur SPID (Source Server Process ID, Quellserverprozess-ID) für das Ereignis.

Hinweise

type Name
MOF - sqlmgmprovider.mof (SQL Server 2022 (16.x) und höhere Versionen)
- sqlmgmproviderxpsp2up.mof (SQL Server 2019 (15.x) und frühere Versionen)
DLL sqlmgmprovider.dll
Namespace \root\Microsoft\SqlServer\ComputerManagement10

Beispiel

Im folgenden Beispiel wird gezeigt, wie Werte für alle protokollierten Ereignisse in einer angegebenen Protokolldatei abgerufen werden. Ersetzen Sie zum Ausführen des Beispiels <Instance_Name> durch den Namen der Instanz von SQL Server, z. B. "Instance1", und ersetzen Sie "File_Name" durch den Namen der Fehlerprotokolldatei, z. B. "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

Kommentare

Wenn InstanceName oder FileName nicht in der WQL-Anweisung bereitgestellt werden, gibt die Abfrage Informationen für die Standardinstanz und die aktuelle SQL Server-Protokolldatei zurück. Die folgende WQL-Anweisung gibt beispielsweise alle Protokollereignisse aus der aktuellen Protokolldatei (ERRORLOG) für die Standardinstanz (MSSQLSERVER) zurück.

"SELECT * FROM SqlErrorLogEvent"

Sicherheit

Um eine Verbindung mit einer SQL Server-Protokolldatei über WMI herzustellen, müssen Sie über die folgenden Berechtigungen für die lokalen und Remotecomputer verfügen:

  • Lesezugriff auf den WMI-Namespace "Root\Microsoft\SqlServer\ComputerManagement10 ". Standardmäßig verfügt jeder Benutzer durch die Berechtigung Konto aktivieren über Lesezugriff.

  • Leseberechtigung für den Ordner mit den Fehlerprotokollen. Standardmäßig befinden sich die Fehlerprotokolle im folgenden Pfad (wobei <Drive> das Laufwerk darstellt, auf dem Sie SQL Server installiert haben, und <InstanceName> ist der Name der Instanz von SQL Server):

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

Wenn Sie eine Verbindung über eine Firewall herstellen, stellen Sie sicher, dass eine Ausnahme in der Firewall für WMI auf Remotezielcomputern festgelegt ist. Weitere Informationen finden Sie unter Herstellen einer Remoteverbindung mit WMI ab Windows Vista.

Weitere Informationen