我正在编写一个存储过程,我需要在该过程中动态构造一个 SQL 语句来引用传入的表名。
我需要让这个 SQL 语句返回一个结果,然后我可以在整个过程的其余部分使用该结果。
我试过使用临时表和所有东西,但我不断收到一条消息,我需要声明变量等。
例如:
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
或者...
DECLARE @FiscalYear INT
DECLARE @DataSource NVARCHAR(25)
DECLARE @SQL NVARCHAR(250)
SELECT @DataSource = 'CustomerCosts20120328'
SELECT @SQL = 'SELECT DISTINCT @FiscalYear = FiscalYear FROM ' + @DataSource
EXEC(@SQL)
无论如何都可以在不使用实际表格的情况下做到这一点?
谢谢。