一尘不染

从Excel运行的SQL不能使用临时表

sql

我已经能够创建从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,但是在这种情况下没有什么区别。


阅读 170

收藏
2021-03-17

共1个答案

一尘不染

以下似乎工作…

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并使用表变量而不是临时表,就可以实现所需的功能。

2021-03-17