Potrzebujesz nawiasów exec (@sql)
SQL Server będzie szukał procedury składowanej o nazwie w @sql
zmienna bez tego i narzekać Could not find stored procedure 'select x, y from z'.
Jeśli używasz dynamicznego SQL Zobacz Klątwa i błogosławieństwa dynamicznego SQL na dobry artykuł na ten temat.