如何对 sql 进行选择查询并访问数据库?
Posted
技术标签:
【中文标题】如何对 sql 进行选择查询并访问数据库?【英文标题】:How to make a select query for sql and access databases? 【发布时间】:2009-10-19 10:21:44 【问题描述】:使用 SQL Server 2000 和 Access 2003
Access Database Name - History.mdb
Access Table Name - Events
SQL Database Name - Star.mdf
SQL Table Name - Person
我想从人员表中获取字段,并通过使用内连接包含在事件表中
尝试查询
Select * from Events inner join person where events.id = person.id
那么如何查询access和sql数据库。
我只想在访问中进行选择查询。不是 sql 数据库。
需要查询帮助?
【问题讨论】:
Gropal,我同意下面的 cmets 在 ms-access 中重新创建一个链接到 SQL 服务器表的表。如果 Person 表很大,请确保您在 person.id 上有一个索引,否则每次查询运行时 ms-access 都会在网络上执行全表扫描。 【参考方案1】:虽然您可以(可能,应该 -- 为什么?)使用链接表,但剥猫皮的方法不止一种。这是另一种方法:将连接详细信息放入查询测试中,例如像
SELECT *
FROM [ODBC;Driver=SQL Server;SERVER=MyServer;DATABASE=Star;UID=MyUsername;Pwd=MyPassword;].Person AS P1
INNER JOIN
[MS Access;DATABASE=C:\History;].[Events] AS E1
ON S1.seq = S2.seq
WHERE E1.id = P1.id;
【讨论】:
您能否准确解释一下您认为该方法何时有用?对于绝大多数情况,链接表更容易管理。我认为将连接字符串隐藏在 SQL 字符串中确实存在问题,无论是作为保存的 QueryDefs 存储,还是作为表单/报告中的 Recordsources/Rowsources 存储,以及在 VBA 代码中。将链接表作为一个可以像在 Access 数据库中一样使用的对象更加简洁。 我不能。您可能是对的:我认为将 SQL 代码隐藏在字符串中确实存在问题,无论是作为 Recordsources/Rowsources 存储在表单/报告中还是在 VBA 代码中;将 SQL 代码作为对象(VIEW 或 PROCEDURE)用于整个应用程序和任何其他将使用您的数据库的应用程序(这将发生如果数据库在企业中成功)。请编辑以添加您喜欢链接表的原因:) 我在哪里运行这种查询?【参考方案2】:您可以在 Access 中为您的 SQL Server 设置链接表,有关如何执行此操作的说明在 Access 版本中略有不同。查看“链接表”的帮助文件,如果您有 Access 2007,请转到 here。
一旦您设置了链接表,您就可以在查询中访问 SQL Server 表。请注意,优化链接表连接需要一些工作。
【讨论】:
【参考方案3】:您可以在 Access 中创建一个链接表,该表指向 SQL 中的表。其余的您可以在查询设计器中实现。
【讨论】:
【参考方案4】:您应该将 msaccess 数据库添加为远程服务器。 那你就可以加入了
【讨论】:
抱歉,我错过了说您希望查询在 ms 访问中进行的部分。在这种情况下,使用其他答案中建议的链接表以上是关于如何对 sql 进行选择查询并访问数据库?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 sql 中设置变量并在选择查询中使用它来显示和执行对该变量的操作(MAX MIN)?