T-SQL – Restituire il messaggio di errore personalizzato e fine della query

Ho una lunga stored procedure in cui vorrei fare qualcosa di simile:

IF @SubPageDirectory IS NULL
BEGIN
    RAISERROR('@SubPageDirectory cannot be NULL', 10, 1)
    EXIT STORED PROCEDURE
END

Fondamentalmente vorrei controllare se la mia variabile è NULL, e se viene restituito un messaggio di errore per il mio .NET Applicazioni Web, e interrompere l’esecuzione di query in quella fase. Come posso realizzare questo?

OriginaleL’autore Curt | 2010-07-15

One Reply
  1. 13
    IF @SubPageDirectory IS NULL 
    BEGIN 
        RAISERROR('@SubPageDirectory cannot be NULL', 16, 1) --change to > 10
        RETURN --exit now
    END 
    hai bisogno del ritorno, ho pensato raiserror avrebbe rinunciato.
    no, svolge la sua esecuzione
    Di RITORNO sembra di tornare senza errori, come in, non mostrare all’utente gli errori, sarà solo continuare. RAISERROR sulla propria continua la lettura tramite la stored procedure come sarà quindi portare un altro errore.
    +1, tuttavia, mi piacerebbe farlo RETURN n dove n è un numero intero. Faccio negativi i valori di ritorno di messaggi di avviso (invalid input dell’utente, ecc) e positivi valori di ritorno errori fatali (inserire il fallimento, ecc). L’applicazione chiamante può determinare come gestire il messaggio (difficile interrompere e/o semplicemente visualizzare il messaggio in base al valore restituito essere positivo/negativo.
    href=”http://stackoverflow.com/questions/761898/”>stackoverflow.com/questions/761898

    OriginaleL’autore gbn

Lascia un commento