Informazioni sugli errori del Motore di database

Nella tabella seguente vengono descritti gli attributi degli errori generati da Microsoft Motore 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 Framework SQLClient, 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

Altre risorse

sys.messages (Transact-SQL)
Utilizzo di RAISERROR
Utilizzo di @@ERROR
TRY...CATCH (Transact-SQL)
ERROR_LINE (Transact-SQL)
ERROR_MESSAGE (Transact-SQL)
ERROR_NUMBER (Transact-SQL)
ERROR_PROCEDURE (Transact-SQL)
ERROR_SEVERITY (Transact-SQL)
ERROR_STATE (Transact-SQL)

Guida in linea e informazioni

Assistenza su SQL Server 2005