Informazioni sugli errori del motore di database

Si applica a:SQL Server database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics AnalyticsPlatform System (PDW)SQL analytics endpoint in Microsoft FabricWarehouse in Microsoft Fabric

Gli errori generati dalla motore di database di Microsoft SQL Server hanno gli attributi descritti nella tabella seguente.

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 altre 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 per il 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 visualizzano database che contengono informazioni sui problemi noti, ad esempio la Microsoft Knowledge Base, è possibile utilizzare il numero di stato per determinare se il problema registrato è uguale all'errore riscontrato. 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.

Un tecnico del supporto Tecnico Microsoft può anche usare il codice di stato di un errore per trovare il percorso nel codice sorgente in cui viene 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 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 del 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 SQLClient di Microsoft .NET Framework, ActiveX Data Objects (ADO), OLE DB e Open Database Connessione ivity (ODBC), segnalano gli attributi di errore di base. 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.

Informazioni su un errore che si verifica nell'ambito del blocco TRY di un try... Il costrutto CATCH può essere ottenuto nel codice Transact-SQL usando funzioni quali ERROR_LINE, ERROR_MESSAGE, ERROR_NUMBER, ERROR_PROCEDURE, ERROR_edizione Standard VERITY e ERROR_STATE nell'ambito del blocco CATCH associato. Per altre informazioni, vedere TRY...CATCH (Transact-SQL).

Esempi

Nell'esempio seguente viene eseguita una query sulla sys.messages vista del catalogo per restituire un elenco di tutti i messaggi di errore di sistema e definiti dall'utente nel motore di database con testo in inglese (1033).

SELECT  
    message_id,  
    language_id,  
    severity,  
    is_event_logged,  
    text  
  FROM sys.messages  
  WHERE language_id = 1033;  

Per altre informazioni, vedere sys.messages (Transact-SQL).

Vedi anche

sys.messages (Transact-SQL)
RAI edizione Standard RROR (Transact-SQL)
@@ERROR (Transact-SQL)
PROVARE... CATCH (Transact-SQL)
ERROR_LINE (Transact-SQL)
ERROR_MESSAGE (Transact-SQL)
ERROR_NUMBER (Transact-SQL)
ERROR_PROCEDURE (Transact-SQL)
ERROR_edizione Standard VERITY (Transact-SQL)
ERROR_STATE (Transact-SQL)