Merci à vous d'avoir répondu ça fait plaisir !
Bon en ce qui concerne mon probleme, je vais m'orienter vers la réponse de mr_qno, car c'est véritablement la seule qui convient à mon probleme ...
En fait, je dois absolument utiliser la commande
EXEC car je réalise d'autres concaténations dans la chaine qui me sert de requete ...
Voici mon Code :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| -- ci-dessous, 1 parametre d'entrée de ma procedure stockée
@id numeric -- identifiant à tester
[...]
-- ci-dessous, trois variables locales
DECLARE @table varchar(32) -- contient le nom de la table à tester
DECLARE @OK int
DECLARE @req varchar(100)
[...]
SET @req = 'SELECT @OK = count(*) FROM '+@table+' WHERE ID_'+@table+'='+CAST(@id AS VARCHAR)
EXEC(@req)
IF @OK = 0 OR @OK IS NULL
BEGIN
RAISERROR ('Erreur', 16, 1)
RETURN
END
[...] |
En fait, il s'agit de faire une procedure qui teste une table dont le nom est récupéré automatiquement. La clé primaire des tables que je veux tester est toujours de la forme :
Nom Table : MaTable
clé primaire : ID_MaTable
Avec cette méthode, je pense que je suis obligé de passer par une table temporaire ...
Qu'est ce que vous en pensez ?
Partager