まず、文字列から「+」を省略しました。この方法は理想からはほど遠いですが、できます
DECLARE @SQL varchar(250)
SELECT @SQL = 'SELECT * FROM ' + QuoteName(@Alias)
Exec(@SQL)
ただし、これをどのように行うかを再考することを強くお勧めします。動的SQLを生成すると、SQLインジェクションの脆弱性が発生するだけでなく、SQL Server(および他のDB)がクエリを処理するための最良の方法を見つけるのが難しくなります。任意のテーブルを返すことができるストアドプロシージャがある場合、最適化の方法で多くのことを行うことができないため、そもそもストアドプロシージャであることによるメリットはほとんどありません。主にセキュリティ上のメリットもあります。