L'erreur est de retour lorsque la procédure stockée suivant est tenté d'exécuter:SQL Server 2000 « syntaxe incorrecte près du mot-clé « CASE » »
EXECUTE p_someProc
--list of vars
CASE WHEN @var1=1 AND @var2=1 THEN 3
WHEN @var2=1 THEN 2
WHEN @var1=1 THEN 1 END,
--more vars
Il existe d'autres fonctions CASE incluses, mais seulement une seule erreur est vomi qui pointe vers le premier cas.
Lorsque l'expression identique est exécutée dans une fonction PRINT, un résultat attendu est renvoyé.
declare @var1 bit set @var1 = 1
declare @var2 bit set @var2 = 1
print(CASE WHEN @var1=1 AND @var2=1 THEN 3
WHEN @var1=1 THEN 2
WHEN @var2=1 THEN 1 END)
La sortie est '3'
Je suppose que je suis abusant de la fonction CASE en quelque sorte. Quelqu'un pourrait-il penser à une solution de contournement ou un moyen de résoudre ce problème?
Merci d'avance.
--Stan
Merci. L'utilisation de CASE pour attribuer des valeurs a résolu le problème. – Stan
np. Il est difficile de s'habituer à une construction de cas qui ne peut pas être utilisée pour le contrôle du flux. – cmsjr