我正在重新设计一个我真的不喜欢的ASP.NET CMS应用程序.我已经对性能进行了改进,但发现这个CMS不仅使用MS SQL,而且一些用户"只是"使用MS Access数据库.
问题是我有一些内部加入的表,MS Access版本有两个不同的文件.我不允许简单地将表移动到其他mdb文件.
我现在正试图找出跨多个访问数据库文件"内部连接"的好方法?
如果我获取所有数据并以编程方式执行它真的很可惜!
谢谢
您根本不需要链接表.使用来自不同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查询优化器不一定能够使用这些表中的索引进行连接(是否将它们用于各个字段的标准是另一个问题),所以这可能非常慢(在我的测试中,它不是,但我没有使用大数据集来测试).但是,性能问题也适用于链接表.