从Excel运行的SQL无法使用临时表

 尹嫱AileenDawnYin 发布于 2023-01-30 17:56

我已经能够创建从Excel到SQL Server的数据连接并成功执行许多SQL查询.但如果它包含一个临时表,我无法使任何TSQL工作.例如:

select * into #t from compass3.dbo.freq
select * from #t where freq_id>2

(显然在这种情况下不需要使用#t:我只是给出了最简单的例子.)这在SSMS中工作正常但是当通过Excel执行时我收到错误消息"我们无法刷新连接"audbbicube '.表'离子Query1'可能不存在."

在其他一些SO帖子中,人们建议添加set nocount on,但这种情况没有区别.

2 个回答
  • 以下似乎有效......

    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并使用表变量而不是临时表,我就能实现我所需要的.

    2023-01-30 17:59 回答
  • 我想添加上面的答案 - 只需SET NOCOUNT ON在查询的顶部使用,常规临时表SELECT name INTO #Names FROM Employee应该工作.

    这里不需要表变量.

    您还可以添加SET ANSI_WARNINGS OFF以避免诸如"聚合消除NULL值"之类的消息.

    2023-01-30 17:59 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有