次のようなことを試しましたか:
DECLARE @FiscalYear INT, @DataSource NVARCHAR(25), @SQL NVARCHAR(250); SET @DataSource = N'CustomerCosts20120328'; SET @SQL = N'SELECT DISTINCT @FiscalYear = FiscalYear FROM ' + @DataSource; EXEC sp_executesql @SQL, N'@FiscalYear INT OUTPUT', @FiscalYear OUTPUT; PRINT @FiscalYear;プレ>nvarchar 文字列の前に N を付けるようにしてください。
SELECT @SQL = N'SELECT ....また、クエリが複数の行を返す場合、
@FiscalYearに割り当てられる値もわかっています。 完全に恣意的ですよね?そのテーブルから単一の値を期待するかもしれませんが、MAX()を使用しても害はありません またはTOP 1 ... ORDER BY単一の予測可能な値のみが割り当てられるようにします。