当前位置:  开发笔记 > 后端 > 正文

跨多个访问数据库的内部联接

如何解决《跨多个访问数据库的内部联接》经验,为你挑选了1个好方法。

我正在重新设计一个我真的不喜欢的ASP.NET CMS应用程序.我已经对性能进行了改进,但发现这个CMS不仅使用MS SQL,而且一些用户"只是"使用MS Access数据库.

问题是我有一些内部加入的表,MS Access版本有两个不同的文件.我不允许简单地将表移动到其他mdb文件.

我现在正试图找出跨多个访问数据库文件"内部连接"的好方法?

如果我获取所有数据并以编程方式执行它真的很可惜!

谢谢



1> David-W-Fent..:

您根本不需要链接表.使用来自不同MDB的数据有两种方法可以在没有链接表的情况下使用.第一种是在SQL的FROM子句中使用"IN'c:\ MyDBs\Access.mdb'".您保存的一个查询将是:

SELECT MyTable.*
FROM MyTable IN 'c:\MyDBs\Access.mdb'

而另一个保存的查询将是:

SELECT OtherTable.*
FROM OtherTable IN 'c:\MyDBs\Other.mdb'

然后,您可以保存这些查询,然后使用保存的查询来连接这两个表.

或者,您可以在单个SQL语句中通过为FROM子句中的每个表指定源MDB的路径来管理它,因此:

SELECT MyTable.ID, OtherTable.OtherField
FROM [c:\MyDBs\Access.mdb].MyTable 
  INNER JOIN [c:\MyDBs\Other.mdb].OtherTable ON MyTable.ID = OtherTable.ID

但请记住一件事:

Jet查询优化器不一定能够使用这些表中的索引进行连接(是否将它们用于各个字段的标准是另一个问题),所以这可能非常慢(在我的测试中,它不是,但我没有使用大数据集来测试).但是,性能问题也适用于链接表.

推荐阅读
ar_wen2402851455
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有