SQL Server RAISERROR (Italiano)

Riepilogo: in questo tutorial, imparerai come utilizzare l’istruzione SQL Server RAISERROR per generare messaggi di errore definiti dall’utente.

Se si sviluppa una nuova applicazione, è necessario utilizzare l’istruzioneTHROW.,

SQL Server RAISEERROR statement overview

L’istruzioneRAISERROR consente di generare i propri messaggi di errore e restituirli all’applicazione utilizzando lo stesso formato di un messaggio di errore di sistema o di avviso generato dal motore di database SQL Server. Inoltre, l’istruzioneRAISERROR consente di impostare un ID messaggio specifico, un livello di gravità e uno stato per i messaggi di errore.,

Quanto segue illustra la sintassi del RAISERROR istruzione:

Esaminiamo la sintassi del RAISERROR per una migliore comprensione.

message_id

Ilmessage_id è un numero di messaggio di errore definito dall’utente memorizzato nella vista catalogosys.messages.

Per aggiungere un nuovo numero di messaggio di errore definito dall’utente, si utilizza la stored procedure sp_addmessage. Un numero di messaggio di errore definito dall’utente deve essere maggiore di 50.000., Per impostazione predefinita, l’istruzioneRAISERROR utilizzamessage_id 50.000 per generare un errore.,

L’istruzione seguente aggiunge un messaggio di errore personalizzato per il sys.messages vista:

Per verificare l’inserimento, è possibile utilizzare la seguente query:

Code language: SQL (Structured Query Language) (sql)

Per utilizzare questo message_id, è possibile eseguire il RAISEERROR istruzione come segue:

Code language: SQL (Structured Query Language) (sql)

Ecco l’output:

Code language: SQL (Structured Query Language) (sql)

Per rimuovere un messaggio di un sys.messages, è possibile utilizzare la stored procedure sp_dropmessage., Ad esempio, la seguente istruzione elimina l’id messaggio 50005:

Code language: SQL (Structured Query Language) (sql)

message_text

message_text è un messaggio definito dall’utente con formattazione come la funzione printf nella libreria standard C. message_text può contenere fino a 2.047 caratteri, gli ultimi 3 caratteri sono riservati ai puntini di sospensione (…). Semessage_text contiene 2048 o più, verrà troncato ed è riempito con un puntino di sospensione.,

Quando si specifica l’istruzione message_text, l’istruzione RAISERROR utilizza message_id 50000 per generare il messaggio di errore.

L’esempio seguente utilizza il RAISERROR istruzione per generare un errore con un messaggio di testo:

Code language: SQL (Structured Query Language) (sql)

L’output sarà simile a questa:

Code language: SQL (Structured Query Language) (sql)

la gravità

Il livello di gravità è un numero intero compreso tra 0 e 25, con ogni livello rappresenta la gravità dell’errore.

Code language: SQL (Structured Query Language) (sql)

stato

Lo stato è un numero intero compreso tra 0 e 255., Se si genera lo stesso errore definito dall’utente in più posizioni, è possibile utilizzare un numero di stato univoco per ogni posizione per facilitare la ricerca della sezione del codice che causa gli errori. Per la maggior parte delle implementazioni, è possibile utilizzare 1.

CON l’opzione

L’opzione può essere LOG NOWAIT o SETERROR:

  • WITH LOG registra l’errore nel log di errore del registro dell’applicazione e per l’istanza di Motore di Database SQL Server.,
  • WITH NOWAIT invia immediatamente il messaggio di errore al client.
  • WITH SETERROR imposta i valoriERROR_NUMBER e@@ERROR su message_id o 50000, indipendentemente dal livello di gravità.

SQL Server RAISERROR examples

Prendiamo alcuni esempi di utilizzo dell’istruzioneRAISERROR per ottenere una migliore comprensione.,

A) Utilizzo di SQL Server RAISERROR con TRY CATCH block example

In questo esempio, usiamo ilRAISERROR all’interno di unTRY blocco per far sì che l’esecuzione salti alCATCH blocco associato. All’interno del blocco CATCH, usiamo il RAISERROR per restituire le informazioni di errore che hanno richiamato il blocco CATCH.,

Ecco l’output:

Code language: SQL (Structured Query Language) (sql)

B) Utilizzo di SQL Server istruzione RAISERROR con una dinamica messaggio di testo di esempio

L’esempio seguente mostra come utilizzare una variabile locale per fornire il messaggio di testo per un RAISERROR dichiarazione:

l’output è Il seguente:

Code language: SQL (Structured Query Language) (sql)

Quando utilizzare l’istruzione RAISERROR

Si utilizza il tag RAISERROR dichiarazione nei seguenti casi:

  • Risoluzione dei problemi codice Transact-SQL.
  • Restituisce messaggi che contengono testo variabile.
  • Esaminare i valori dei dati.,
  • Fa sì che l’esecuzione salti da un blocco TRY al blocco CATCH associato.
  • Restituisce le informazioni di errore dal bloccoCATCH ai chiamanti, chiamando batch o applicazione.

In questo tutorial, imparerai come utilizzare l’istruzione RAISERROR di SQL Server per generare messaggi di errore definiti dall’utente.

Share

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *