我创建了一个访问查询,其中包含大约700条记录的3字段输出,我希望将其用作对SQL服务器的passthru查询的输入。
我已经在SQL服务器中完全测试了该过程,并且它工作正常,但是当我尝试在passtrhu中运行相同的代码时,我收到错误
将returnrecords属性设置为yes的传递查询没有 返回任何记录。
以下是查询的前几行:
if object_id('tempdb..#marktmp1') is not null drop table #marktmp1
create table #marktmp1
(Cid bigint,
Ccd varchar(6),
Ciss int);
/*
Insert into #marktmp1
values
(5110029175, 'SPO', 17),
(5110029722, 'SPO', 17),
(5110035139, 'SPO', 17);
我只是将第一个查询的输出复制/传递到上面的列表中
在记录列表的末尾,我尝试将#marktmp1
表加入现有表。
我们在Sql Server 2012上。
答案 0 :(得分:2)
在没有看到其余代码的情况下,我猜你永远不会以任何其他方式进行选择或返回结果集(比如调用存储过程)。如果是这种情况,请查看此答案中的重要注释:
how-to-create-temp-tables-in-sql-server-via-ms-access
注意,也请检查我后面的Gord Thompson的答案,并确保你不会遇到麻烦。
答案 1 :(得分:0)
简易解决方案:在传递中添加SET NOCOUNT ON
作为第一个命令。
当您将记录插入#temp
表时,SQL Server响应### Record(s) affected.
Access会看到此消息并将其解释为查询完成,但未找到返回的行。这就是你得到的原因
将returnrecords属性设置为yes的传递查询没有 返回任何记录
SET NOCOUNT ON
关闭这些信息消息,然后访问将等待最终的SELECT
发生。