2010-04-22 9 views
1

J'écris une procédure stockée. Cette procédure a un cas où si elle est remplie, je veux arrêter l'exécution de la procédure et retourner -1. Comment puis-je faire cela? Actuellement, j'essaie ce qui suit:SQL 2000 - Retour d'une procédure stockée

IF @result <> 1 
BEGIN 
    SELECT -1     
END 

Cependant, SELECT n'est pas un "retour" typique. Comme vous pouvez l'imaginer je passe le plus clair de mon temps dans le code, c'est pourquoi je cherche quelque chose comme un "retour".

Merci,

+1

Été depuis longtemps que j'ai travaillé sur SQL 2000 - je suppose que RETURN -1 est la syntaxe invalide dans les 2000 jours? –

Répondre

1
IF @result <> 1 
BEGIN 
    RETURN -1     
END 
SELECT * FROM bla 
RETURN 0 
1
IF @result <> 1 
BEGIN 
    SELECT -1   
    RETURN  
END 

ne fonctionne pas?

0

Essayez cette

IF @result <> 1 
BEGIN 
    RETURN -1     
END 
0

RETURN (Transact-SQL)

Quitte sans conditions d'une procédure ou requête . RETURN est immédiat et complet et peut être utilisé à tout point pour quitter une procédure, un lot ou un bloc d'instructions . Les instructions qui suivent ne sont pas exécutées.

Lorsqu'il est utilisé avec une procédure stockée, RETURN ne peut pas renvoyer une valeur nulle. Si une procédure tente de retourner une valeur nulle (par exemple, en utilisant RETOUR @status lorsque @status est NULL), un message d'avertissement est généré et une valeur de 0 est retourné

.

Il est une convention commune pour retourner zéro 0 quand tout va bien, une valeur négative quand il y a une erreur douce (comme la validation ou l'avertissement de l'utilisateur) et une valeur positive pour une erreur matérielle, comme insert a échoué, etc.

... 

IF @result!=1 
BEGIN 
    RETURN -1 --there was an error!   
END 

.... 

RETURN 0 --everything is fine 
Questions connexes