动态SQL查询不会将数据返回到SQL工作表中

时间:2019-01-03 13:50:16

标签: sql-server excel

我有如下所示的动态SQL查询

动态SQL查询:

Declare @Currentmonth4date varchar(8)= convert(varchar(8), DATEADD(month, DATEDIFF(month, 0, GETDATE()), 3),112)
Declare @SQL varchar(max)= 'dbo.Exclusion_Process_Tab1_' + '20181204'

Declare @Select varchar(400) = 'Select * from ' + @SQL

exec (@Select)

我试图通过Microsoft查询源从excel'2010执行此代码。

单击返回数据到选项表单查询窗口后,它没有将数据返回到Excel工作表中。

请帮助

2 个答案:

答案 0 :(得分:2)

您尝试测试动态SQL

它正在返回Style

尝试

Select * from dbo.Exclusion_Process_Tab1_20181204

这个正在返回

Declare @Currentmonth4date varchar(8)= convert(varchar(8), DATEADD(month, DATEDIFF(month, 0, GETDATE()), 3),112)
Declare @SQL varchar(max)= 'dbo.Exclusion_Process_Tab1_'+ @Currentmonth4date

Declare @Select varchar(400) = 'Select * from '+@SQL

PRINT(@SELECT)

--exec (@Select)

在测试注释打印和取消注释执行后

在执行动态查询之前,先用print测试它们,然后看它们返回什么。

答案 1 :(得分:0)

您不需要动态SQL,这有什么意义?

您只是在做类似的事情:

EXEC('SELECT * FROM dbo.Exclusion_Process_Tab1_20181204')

为什么不只是:

SELECT * FROM dbo.Exclusion_Process_Tab1_20181204

并省略所有不必要的变量。