我需要创建一个本地临时表#tblTmpYaks,然后选择此临时表中的记录以显示在PassThrough查询中。
临时表创建如下:
CREATE TABLE #tblTmpYaks (ID INT NOT NULL IDENTITY,
YakName CHAR(30),
PRIMARY KEY (ID));
INSERT INTO #tblTmpYaks (YakName) VALUES('My Yak');
INSERT INTO #tblTmpYaks (YakName) VALUES('My Female Yak');
然后使用SQL字符串创建一个passthru查询:
SELECT * FROM #tblTmpYaks;
但这不起作用,因为当我打开它时显示MsgBox:
这意味着#tblTmpYaks在SQL Server中不再存在。
如何使这项工作?
如下面的Gord Thompson所述,我放弃使用仅在本地SQL Server会话期间存在的本地临时表#tblTmpYaks。相反,这里使用了一个全局临时表## tblTmpYaks,它可以通过直通查询隐含在Access报告的RecordSource中,并且当退出访问接口时会自动删除它。
答案 0 :(得分:2)
与问题here类似,如果您使用SQL Server 全局临时表(##tblTmpYaks
而不是{{1},那么您可能会有更好的运气}})。如果您通过Access中的CREATE TABLE Pass-Through查询创建表,那么该表应该保持不变,直到您关闭Access(除非您首先明确地显示DROP TABLE)。