Condividi tramite


Classe SqlErrorLogEvent

Si applica a: SQL Server

Fornisce proprietà per la visualizzazione di eventi in un file di log di SQL Server specificato.

Sintassi

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

Proprietà

La classe SQLErrorLogEvent definisce le proprietà seguenti.

Proprietà Descrizione
FileName Tipo di dati: string

Tipo di accesso: sola lettura

Nome del file di log degli errori.
InstanceName Tipo di dati: string

Tipo di accesso: sola lettura

Qualificatori: chiave

Nome dell'istanza di SQL Server in cui risiede il file di log.
LogDate Tipo di dati: datetime

Tipo di accesso: sola lettura

Qualificatori: chiave

Data e ora della registrazione dell'evento nel file di log.
Message Tipo di dati: string

Tipo di accesso: sola lettura

Messaggio di evento.
ProcessInfo Tipo di dati: string

Tipo di accesso: sola lettura

Informazioni sull'ID del processo server di origine (SPID) per l'evento.

Osservazioni:

Type Nome
MOF - sqlmgmprovider.mof (SQL Server 2022 (16.x) e versioni successive)
- sqlmgmproviderxpsp2up.mof (SQL Server 2019 (15.x) e versioni precedenti)
DLL sqlmgmprovider.dll
Spazio dei nomi \root\Microsoft\SqlServer\ComputerManagement10

Esempio

Nell'esempio seguente viene illustrato come recuperare valori per tutti gli eventi registrati in un file di log specificato. Per eseguire l'esempio, sostituire <Instance_Name> con il nome dell'istanza di SQL Server, ad esempio "Instance1" e sostituire "File_Name" con il nome del file di log degli errori, ad esempio "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

Commenti

Quando InstanceName o FileName non vengono forniti nell'istruzione WQL, la query restituisce informazioni per l'istanza predefinita e il file di log di SQL Server corrente. Ad esempio, l'istruzione WQL seguente restituisce tutti gli eventi di log dal file di log corrente (ERRORLOG) nell'istanza predefinita (MSSQLSERVER).

"SELECT * FROM SqlErrorLogEvent"

Sicurezza

Per connettersi a un file di log di SQL Server tramite WMI, è necessario disporre delle autorizzazioni seguenti per i computer locali e remoti:

  • Accesso in lettura allo spazio dei nomi WMI Root\Microsoft\SqlServer\ComputerManagement10 . Per impostazione predefinita, chiunque dispone di accesso in lettura tramite l'autorizzazione Abilita account.

  • Autorizzazione di lettura per la cartella che contiene i log degli errori. Per impostazione predefinita, i log degli errori si trovano nel percorso seguente (dove <Unità> rappresenta l'unità in cui è installato SQL Server e <InstanceName> è il nome dell'istanza di SQL Server):

    <Unità>:\Programmi\Microsoft SQL Server\MSSQL13 .<InstanceName>\MSSQL\Log

Se ci si connette tramite un firewall, assicurarsi che nel firewall sia impostata un'eccezione per WMI nei computer di destinazione remoti. Per altre informazioni, vedere Connessione a WMI in remoto a partire da Windows Vista.

Vedi anche