Vous souhaitez exécuter une chaine du type : @SQL = 'SELECT CHAMPS1, CHAMPS2 FROM MA_TABLE WHERE CHAMPS1 = @VARIABLE' EXEC @SQL et vous obtenez un message d'erreur comme ceci : Must declare the scalar variable "@..."

Pour contourner ce problème il faut utiliser la procédure T-SQL EXEC sp_executesql. Voici un exemple complet d'exécution d'une chaîne T-SQL avec la commande spéciale EXEC sp_executesql -- Création de la table pour l'exemple CREATE TABLE MA_TABLE ( CHAMPS1 NVARCHAR(100), CHAMPS2 NVARCHAR(100) ); -- Déclaration des variables utilisées par la procédure DECLARE @COMPTEUR INT; -- Compteur DECLARE @VARIABLE NVARCHAR(20); -- Variable mise à jour dans notre boucle à chaque passage DECLARE @VARIABLE_CHAR...

Lire la suite