Apakah Anda mencoba sesuatu seperti:
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;
Anda ingin memastikan bahwa Anda mengawali string nvarchar dengan N, mis. SELECT @SQL = N'SELECT ...
.
Juga, Anda tahu bahwa jika kueri mengembalikan beberapa baris, nilai yang ditetapkan ke @FiscalYear
benar-benar sewenang-wenang, kan? Meskipun Anda mungkin mengharapkan satu nilai dari tabel itu, tidak ada salahnya menggunakan MAX()
atau TOP 1 ... ORDER BY
untuk memastikan bahwa hanya satu nilai yang dapat diprediksi yang pernah ditetapkan.