Prøvede du noget som:
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;
Du skal sikre dig, at du præfikser nvarchar-strenge med N, f.eks. SELECT @SQL = N'SELECT ...
.
Du ved også, at hvis forespørgslen returnerer flere rækker, bliver den værdi, der tildeles @FiscalYear
er fuldstændig vilkårlig, ikke? Selvom du kan forvente en enkelt værdi fra den tabel, kan det ikke skade at bruge MAX()
eller TOP 1 ... ORDER BY
for at sikre, at kun en enkelt forudsigelig værdi nogensinde tildeles.