Vous avez besoin de parenthèses exec (@sql)
SQL Server recherchera une procédure stockée du nom dans le @sql
variable sans cela et se plaindre Could not find stored procedure 'select x, y from z'.
Si vous utilisez SQL dynamique Voir La malédiction et les bénédictions du SQL dynamique pour un bon article sur le sujet.