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.