Sie benötigen Klammern exec (@sql)
SQL Server sucht nach einer gespeicherten Prozedur mit dem Namen in @sql
Variable ohne dies und beschweren Sie sich Could not find stored procedure 'select x, y from z'.
Wenn Sie dynamisches SQL verwenden, lesen Sie Fluch und Segen von dynamischem SQL für einen guten Artikel zum Thema.