Cóż, po pierwsze pominąłeś „+” w swoim łańcuchu. Ten sposób działania jest daleki od ideału, ale możesz to zrobić
DECLARE @SQL varchar(250)
SELECT @SQL = 'SELECT * FROM ' + QuoteName(@Alias)
Exec(@SQL)
Zdecydowanie sugerowałbym jednak przemyślenie, jak to zrobić. Generowanie dynamicznego SQL często prowadzi do powstania luk SQL Injection, a także utrudnia SQL Serverowi (i innym bazom danych) znalezienie najlepszego sposobu przetwarzania zapytania. Jeśli masz procedurę składowaną, która może zwrócić dowolną tabelę, w zasadzie nie odniesiesz praktycznie żadnych korzyści z tego, że jest to procedura składowana, ponieważ nie będzie ona w stanie wiele zdziałać w zakresie optymalizacji, a w dużej mierze osłabiając również korzyści związane z bezpieczeństwem.