Informazioni sugli errori del Motore di database
Nella tabella seguente vengono descritti gli attributi degli errori generati da MicrosoftMotore di database di SQL Server.
Attributo |
Descrizione |
---|---|
Numero di errore |
Numero di errore univoco per ogni messaggio di errore. |
Stringa del messaggio di errore |
Il messaggio di errore include informazioni di diagnostica relative alla causa dell'errore. Molti messaggi di errore contengono variabili di sostituzione con informazioni specifiche, ad esempio il nome dell'oggetto che ha generato l'errore. |
Gravità |
Indica il livello di gravità dell'errore. Gli errori con un livello di gravità basso, ad esempio 1 o 2, sono messaggi informativi o avvisi di basso livello, mentre gli errori che presentano un livello di gravità elevato segnalano problemi da risolvere immediatamente. Per ulteriori informazioni sui livelli di gravità, vedere Gravità degli errori del Motore di database. |
Stato |
Alcuni messaggi di errore possono essere generati in più punti del codice di Motore di database. L'errore 1105, ad esempio, può essere generato in risposta a più condizioni diverse. A ogni condizione specifica che genera un errore viene assegnato un codice di stato univoco. Quando si consultano database che contengono informazioni relative a problemi noti, ad esempio la Microsoft Knowledge Base, è possibile utilizzare il numero di contesto per determinare se il problema registrato corrisponde all'errore che si è verificato. Se ad esempio un articolo della Knowledge Base descrive un errore 1105 che presenta uno stato 2, mentre il messaggio di errore 1105 ricevuto dall'utente presenta uno stato 3, è probabile che la causa dell'errore sia diversa da quella indicata nell'articolo. Il codice di contesto di un errore consente inoltre al personale del supporto tecnico Microsoft di individuare la posizione nel codice sorgente da cui è stato generato il codice di errore. Queste informazioni possono fornire indicazioni aggiuntive utili per la diagnostica del problema. |
Nome della stored procedure |
Rappresenta il nome della stored procedure o del trigger in cui si è verificato l'errore. |
Numero di riga |
Indica quale istruzione di un batch, di una stored procedure, di un trigger o di una funzione ha generato l'errore. |
Tutti i messaggi di errore di sistema e definiti dall'utente in un'istanza di Motore di database sono contenuti nella vista del catalogo sys.messages. È possibile utilizzare l'istruzione RAISERROR per restituire errori definiti dall'utente a un'applicazione.
Tutte le API di database, ad esempio lo spazio dei nomi Microsoft.NET FrameworkSQLClient, ADO (ActiveX Data Objects), OLE DB e ODBC (Open Database Connectivity) forniscono gli attributi di base dell'errore. Queste informazioni includono il numero di errore e la stringa di messaggio. Non tutte le API forniscono tuttavia anche tutti gli altri attributi dell'errore. Per ulteriori informazioni, vedere Gestione degli errori e dei messaggi nelle applicazioni.
Le informazioni relative a un errore che si verifica nell'ambito del blocco TRY di un costrutto TRY…CATCH possono essere ottenute nel codice Transact-SQL mediante funzioni quali ERROR_LINE, ERROR_MESSAGE, ERROR_NUMBER, ERROR_PROCEDURE, ERROR_SEVERITY ed ERROR_STATE nell'ambito del blocco CATCH associato. Per ulteriori informazioni, vedere Recupero di informazioni sugli errori in Transact-SQL e Utilizzo di TRY...CATCH in Transact-SQL.
Esempi
Nell'esempio seguente viene eseguita una query sulla vista del catalogo sys.messages per restituire un elenco di tutti i messaggi di errore di sistema e definiti dall'utente in Motore di database con testo in lingua inglese (1033).
SELECT
message_id,
language_id,
severity,
is_event_logged,
text
FROM sys.messages
WHERE language_id = 1033;
Per ulteriori informazioni, vedere sys.messages (Transact-SQL).
Vedere anche