If et else dans stored procedure [Résolu]

Messages postés
58
Date d'inscription
lundi 25 avril 2005
Dernière intervention
6 mai 2008
- - Dernière réponse : issoux
Messages postés
58
Date d'inscription
lundi 25 avril 2005
Dernière intervention
6 mai 2008
- 16 nov. 2006 à 00:09
Bonjour , j'essaie de faire des condition if et else imbriqué dans une stored procedure sous sql server 2000 , mais je n'y arrive pas : probleme de syntaxe :

savez vous me dire comment s'y prendre :

ce que j'ai fait :

if @role='admin' then  select * from admin

else if @role='user' then select * from user

mais apparemment ca bug

merci de votre aide
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
278
Date d'inscription
samedi 22 février 2003
Dernière intervention
24 avril 2013
3
Merci
En fait Then c'est pas pour le IF en TSQL,

On dis

IF condition
   commande
ELSE
   commande

ou

IF condition
BEGIN
   block de commandes
END
ELSE
BEGIN
   block de commandes
END

THEN c'est pour les instruction CASE :

CASE
   WHEN conditiona THEN
      expression
   WHEN conditionb THEN
      expression
   ELSE
      expression
END

Les CASE sont évaluer comme des expressions (comme l'opérateur ?: en C) et nom pas comme des blocks conditionnel (switch en C)

EX :

SET @MaChaine = CASE 
   WHEN @MonInt = 3 THEN
      N'MonInt vaut 3'
   WHEN @MonInt = 2 THEN
      N'MonInt vaut 2'
   ELSE
      N'MonInt vaut ?'
END;

on peux d'ailleurs dans ce cas adopter la syntaxe suivante :

SET @MaChaine = CASE @MonInt
   WHEN 3 THEN
      N'MonInt vaut 3'
   WHEN 2 THEN
      N'MonInt vaut 2'
   ELSE
      N'MonInt vaut ?'
END;

mais cette syntaxe n'est valable que pour tester une seule donnée et seulement des égaliter (trés proche du switch).

on ne pourat donc pas l'utiliser pour :

SET @MaChaine = CASE 
   WHEN @MonInt > 3 THEN
      N'MonInt vaut +3'
   WHEN @MonAutreInt = 2 THEN
      N'MonAutreInt vaut 2'
   ELSE
      N'MonInt vaut ' + cast(@MonInt as nvarchar)
END;

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de cs_Malkuth
Messages postés
58
Date d'inscription
lundi 25 avril 2005
Dernière intervention
6 mai 2008
0
Merci
Merci bcp
Commenter la réponse de issoux

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.