Heb je iets geprobeerd als:
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;
U moet ervoor zorgen dat u nvarchar-strings voorvoegt met N, b.v. SELECT @SQL = N'SELECT ...
.
U weet ook dat als de query meerdere rijen retourneert, de waarde die wordt toegewezen aan @FiscalYear
is volkomen willekeurig, toch? Hoewel je een enkele waarde van die tabel mag verwachten, kan het geen kwaad om MAX()
. te gebruiken of TOP 1 ... ORDER BY
om ervoor te zorgen dat slechts één enkele, voorspelbare waarde ooit wordt toegewezen.