[resolu] [syntaxe] Gerer les variables dans une requete
Voici mon code :
Code:
1 2 3 4 5 6
| DECLARE @OK int
DECLARE @requete varchar(1000)
DECLARE @test varchar(50)
SET @requete = 'SELECT @OK=count(*) FROM MaTable Where libelle='+@test
EXEC(@requete) |
Voici l'érreur :
Code:
1 2
| Serveur : Msg 137, Niveau 15, État 1, Ligne 1
La variable '@OK' doit être déclarée. |
Explication :
Je veux assigner à une variable @OK le nombre de lignes de ma table "MaTable", et je suis obligé de stoquer la requete dans une chaine pour prendre en compte la variable @test ...
Mais j'ai cette erreur ...
Vous voyez mon erreur/ une autre solution ?
Re: [syntaxe] Gerer les variables dans une requete
Citation:
Envoyé par rastapopulos
Voici mon code :
Code:
1 2 3 4 5 6
| DECLARE @OK int
DECLARE @requete varchar(1000)
DECLARE @test varchar(50)
SET @requete = 'SELECT @OK=count(*) FROM MaTable Where libelle='+@test
EXEC(@requete) |
Voici l'érreur :
Code:
1 2
| Serveur : Msg 137, Niveau 15, État 1, Ligne 1
La variable '@OK' doit être déclarée. |
Explication :
Je veux assigner à une variable @OK le nombre de lignes de ma table "MaTable", et je suis obligé de stoquer la requete dans une chaine pour prendre en compte la variable @test ...
Mais j'ai cette erreur ...
Vous voyez mon erreur/ une autre solution ?
En faisant un EXEC(@requete) l'exécution de la chaîne se fait hors de ta procédure et donc tu 'sors' du contexte de cette procédure initiale, seul endroit où ta variable locale existe.
Une solution : tu stockes la valeur de ta requête dans une table existante ou qui n'existe pas encore, en l'incluant dans ta chaîne :
Code:
'insert into count_table select count(*) FROM MaTable Where libelle='+@test
ou bien
Code:
'select count(*) into count_table FROM MaTable Where libelle='+@test
Et ensuite tu fais un select sur cette table pour récupérer le résultat.