我已经能够创建从Excel到SQL Server的数据连接,并成功执行许多SQL查询。但是,如果它包含一个临时表,我将无法运行任何TSQL。例如:
select * into #t from compass3.dbo.freq select * from #t where freq_id>2
(在这种情况下,显然不需要使用#t:我只是举一个最简单的示例。)在SSMS中可以正常工作,但是当通过Excel执行时,我收到错误消息“我们无法刷新连接’audbbicube ‘。表’ion Query1’可能不存在。”
在其他一些SO帖子中,人们建议添加set nocount on,但是在这种情况下没有什么区别。
set nocount on
以下似乎工作…
set nocount on declare @t table(fid int) -- I'm sure I could add the rest of the columns if I wanted to insert @t select freq_id from compass3.dbo.freq select * from @t where fid>2
因此,只要打开nocount并使用表变量而不是临时表,就可以实现所需的功能。
nocount