Domanda

Sto riscontrando un problema durante l'impostazione di SqlException.Number

Sul mio Stored Proc sto sollevando un errore

--@number = 50001

RAISERROR(@number, 16, 1) -

Dovrei aspettarmi che Error_Number() debba essere @number ma ottengo sempre 18054

C'è qualcosa che non va nel mio RAISERROR?

È stato utile?

Soluzione

Controlla la tabella sys.messages per il codice di errore 74601. Se questo è un errore definito dall'utente, deve essere aggiunto nella tabella.

per qualsiasi errore maggiore di 50000 dovrebbe fornire questo output se non trovato.

Msg 18054, Level 16, State 1, Line 1
Error XXXXX, severity 16, state 1 was raised, but no message with that error number was found in sys.messages. If error is larger than 50000, make sure the user-defined message is added using sp_addmessage.

Altri suggerimenti

C'è un piccolo avvertimento: in questo caso non puoi fornire un messaggio da solo. Ma questo può essere aggirato aggiungendo un ulteriore% s nella chiamata sp_addmessage o modificando tutti i messaggi mappati con il proprio modello e fornendo i parametri corretti nella chiamata raiseerror.

Controlla qui per ulteriori informazioni: SQL Server: esegui nuovamente l'eccezione con il numero di eccezione originale

RAISERROR può fare riferimento a un messaggio definito dall'utente archiviato in sys.messages visualizza il catalogo o crea un messaggio in modo dinamico.

Verifica che il tuo messaggio di errore esista o non lo utilizzi:

select * from sys.messages

Se non esiste, utilizza sp_addmessage per aggiungere messaggi di errore definiti dall'utente e sp_dropmessage per eliminare i messaggi di errore definiti dall'utente.

per ulteriori informazioni, segui la documentazione di RaiseError .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top