我有如下所示的动态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工作表中。
请帮助
答案 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
并省略所有不必要的变量。