SqlErrorLogEvent - classe

Si applica a:SQL Server

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

Sintassi

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

Proprietà

La classe SQLErrorLogEvent definisce le proprietà seguenti.

Proprietà Descrizione
FileName Tipo di dati: stringa

Tipo di accesso: sola lettura

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

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: stringa

Tipo di accesso: sola lettura

Messaggio di evento.
Processinfo Tipo di dati: stringa

Tipo di accesso: sola lettura

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

Commenti

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 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 SQL Server tramite WMI, è necessario disporre delle autorizzazioni seguenti per i computer locali e remoti:

  • Accesso in lettura allo spazio dei nomi Root\Microsoft\SqlServer\ComputerManagement10 WMI. 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 Drive> rappresenta l'unità in cui < è stata installata 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 un'eccezione sia impostata nel firewall per WMI nei computer di destinazione remoti. Per altre informazioni, vedere Connessione a WMI In remoto a partire da Windows Vista.

Vedi anche