Obtenez le résultat de SQL dynamique dans une procédure stockée

Je suis en train d'écrire une procédure stockée où j'ai besoin de construire dynamiquement une instruction SQL dans la procédure pour faire référence à un passé dans le nom de la table.

J'ai besoin de cette instruction SQL retour à un résultat que je peux utiliser dans le reste de la procédure.

J'ai essayé d'utiliser des tables temporaires et tout, mais je reçois un message que j'ai besoin de déclarer les variables, etc.

Par exemple:

DECLARE @FiscalYear INT    
DECLARE @DataSource NVARCHAR(25)
DECLARE @SQL NVARCHAR(250)
SELECT @DataSource = 'CustomerCosts20120328'
DECLARE @tempFiscalYear TABLE ( FiscalYear INT ) 
SELECT @SQL = 'INSERT INTO @tempFiscalYear SELECT DISTINCT FiscalYear FROM ' + @DataSource
EXEC(@SQL)
SELECT @FiscalYear = FiscalYear FROM @tempFiscalYear

Ou...

DECLARE @FiscalYear INT  
DECLARE @DataSource NVARCHAR(25)
DECLARE @SQL NVARCHAR(250)
SELECT @DataSource = 'CustomerCosts20120328'
SELECT @SQL = 'SELECT DISTINCT @FiscalYear = FiscalYear FROM ' + @DataSource
EXEC(@SQL)

Est-il de toute façon pour le faire sans recourir à l'aide d'un tableau?

Grâce.

OriginalL'auteur Tom | 2012-04-24