【发布时间】:2015-05-22 22:42:56
【问题描述】:
这更具概念性。我有一个当前在 SQLServer 中运行的查询,我想在 Access 中将其转换为直通查询。但是,这是一个怪物查询,必须由带有我想要的 ID#s 的 WHERE 子句限制(有太多的 ID#s 没有 WHERE 子句;它会冻结)。我需要的 ID#s 每天都在变化,所以我无法设置这个 passthrough 一次就完成了。
所以我真的不知道如何获取它,因此用户要么 1. 导入带有当天 ID#s 的表,并且该表链接到直通,或者 2. 用户粘贴 ID#s进入一个输入框,这些成为 WHERE 子句条件。
据我所见,我无法使用 ID#s 将 Access 中的表加入 Passthrough,并且我不能在 WHERE 部分中使用 WHERE ID# = [table].[ID#]我的通行证。在 passthrough 中取出 WHERE,然后在它与访问表连接的地方进行简单的选择查询也不起作用,因为查询只需要很长时间就会超时。
这甚至可能吗,还是我应该探索完全不同的策略?
【问题讨论】:
-
为什么不把所有东西都放在 SQL Server 端呢?不要在本地导入 ID 表,而是将其保留在外部,然后使用两个外部表的连接运行传递查询。另外,回想一下 WHERE 是隐式 JOIN。因此,根据查询优化器,在 where 子句或连接表中设置 ID 是等效的过程。看到这个热闹discussion。
标签: ms-access