使用 Access 和 Sql 数据库构建查询
Posted
技术标签:
【中文标题】使用 Access 和 Sql 数据库构建查询【英文标题】:Building Queries Using Access and Sql Database 【发布时间】:2016-11-11 15:55:26 【问题描述】:我在一家公司工作,我们在 MS Access 中有数百个表和查询,在 SQL Server 中有几个表。有时我们需要合并来自两个数据库的结果。
当我们尝试通过使用ODBC connection
将我们的 SQL 表链接到 MS Access 来执行此操作时,结果返回速度非常慢,导致我们的客户抱怨。因此,除了非 ODBC 连接属性之外,这是我要寻找的;
Sql DB
和Access DB
构建查询。
能够保存这些查询并使用 C# 重新运行它们
能够使用子查询(在另一个查询中查询)
我的问题是,是否有任何类型的应用程序或 API(付费或非付费)支持所有这些条款?或者有没有可能造出这样的东西?
【问题讨论】:
SQL Server Management Studio 完成了这一切。但是通过尝试将 SQL Server 表与访问表连接来运行查询并不是一个好主意,而且总是很慢。您需要将访问表数据上传到 SQL Server 中的临时表并从那里加入 @KieranQuinn SQL Server Management Studio 能否将 MS Access 数据库中的所有表放入其自己的查询构建器中?顺便说一句,它不可能是always
慢。我们通过在一个运行速度非常快的两个数据库的 C# 应用程序中组合数据来构建一个特定的查询。我们需要做的就是轻松构建和保存查询。
可以,但需要先将Access中的表导入SSMS数据库。您可以使用 vba 将记录集导入临时表,然后进行连接。如果您在 C# 应用程序中绘制两个数据集并在那里加入,那么是的,这将比加入 Access 相对更有效,但肯定不是一回事。将大型 Access 表与另一个大型链接表连接总是会很慢。
@KieranQuinn 你是对的,在得到该领域专家的帮助后,我们能够使用 SQL Server Management Studio 完成所有列出的要求。如果您提供它作为答案,我会选择它。
【参考方案1】:
SQL Server Management Studio 完成了这一切。但是通过尝试将 SQL Server 表与访问表连接来运行查询并不是一个好主意,而且总是很慢。您需要将访问表数据上传到 SQL Server 中的临时表并从那里加入。
您可以使用 vba 将记录集导入临时表,然后进行连接。如果您在 C# 应用程序中绘制两个数据集并在那里加入,那么是的,这将比加入 Access 相对更有效,但肯定不是一回事。将大型 Access 表与另一个大型链接表联接总是很慢。
【讨论】:
SQL Server Management Studio 确实做到了这一切,但我不明白为什么要将我的数据上传到 SQL 中的临时表。我的表随着新记录不断增长,您的建议是每次我需要使用此查询时,我应该重新创建一个包含数百万条记录的临时表,并在创建的表中进行查询。我不明白这比简单地查询链接表要快。 您仍然可以使用访问权限,但请考虑使用 VBA 将您的访问权限表上传到您要查询的 SQL 服务器上的临时表(创建表#tableName.....)。然后,您可以针对 SQL Server 运行 SQL 查询,并将临时表与 SQL Server 表连接起来。当您可以访问时,临时表将仅存在于 SQL Server 数据库中。一旦你关闭它,表格就会消失。这有意义吗?以上是关于使用 Access 和 Sql 数据库构建查询的主要内容,如果未能解决你的问题,请参考以下文章