2010-07-15 13 views
4

J'ai une longue procédure stockée dans laquelle je voudrais faire quelque chose comme ce qui suit:T-SQL - Retour du message d'erreur personnalisée et requête fin

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

Fondamentalement, je souhaite vérifier si ma variable est NULL, et si c'est le cas, renvoyez un message d'erreur à mon application Web .NET et arrêtez l'exécution de la requête à ce stade. Comment puis-je atteindre cet objectif?

Répondre

12
IF @SubPageDirectory IS NULL 
BEGIN 
    RAISERROR('@SubPageDirectory cannot be NULL', 16, 1) --change to > 10 
    RETURN --exit now 
END 
+0

Avez-vous besoin du retour, je pensais raiserror quitterait. – DaveShaw

+1

@DaveShaw: non, il continue à s'exécuter – gbn

+0

RETURN semble revenir sans aucune erreur, comme dans, il ne montrera pas l'utilisateur les erreurs, il va juste continuer. RAISERROR en lui-même continue de lire la procédure stockée car une autre erreur s'affiche. – Curt