可以链接到 SQL Server 数据库或从 SQL Server 数据库导入数据。 有关详细信息,请参阅 SQL Server 2016。
- 链接到数据时,Access 会创建双向连接,以同步 Access 和 SQL Server 数据库之间的更改。
- 导入数据时,Access 会创建数据的一次性副本。 Access 或 SQL Server 数据库中的更改不会同步。
开始之前
为了帮助流程顺利进行,请在链接或导入之前做好以下准备:
- 找到 SQL Server 数据库服务器名称,确定所需的连接信息,然后选择一种 (Windows 或 SQL Server) 身份验证方法。 有关身份验证方法的详细信息,请参阅连接到服务器 (数据库引擎) 和保护数据库。
- 确定想要链接到或导入的表或视图,以及链接表的唯一值字段。 可通过一次操作链接到或导入多张表或多个视图。
- 考虑每张表或视图中的列数。 Access 不支持一个表中的字段数超过 255 个,因此只链接或导入前 255 列。 作为解决方法,可以在 SQL Server 数据库中创建视图来访问超出限制的列。
- 确定要导入的数据总量。 Access 数据库的最大大小为 2GB,减去系统对象所需的空间。 如果 SQL Server 数据库包含大型表格,可能无法将其全部导入一个 Access 数据库。 该情况下,可考虑链接到数据,而不是导入数据。
- 使用受信任的位置和 Access 数据库密码,以保证 Access 数据库和连接信息的安全性。 如果选择在 Access 中保存 SQL Server 密码,这一点特别重要。
- 计划创建附加关系。 Access 不会在导入操作结束时自动在相关表之间创建关系。 可以使用“关系”窗口手动创建新表和现有表之间的关系。 有关详细信息,请参阅 什么是“关系”窗口? 和 创建、编辑或删除关系。
步骤 1:开始使用
从SQL Server 的数据库>中选择外部数据>新数据源>。
在“获取外部数据 - ODBC 数据库”对话框中,执行下列操作之一:
- 若要导入数据,请选择“ 将源数据导入当前数据库中的新表”。
- 若要链接到数据,请选择“通过创建链接表来链接到数据源”。
选择“确定”。
步骤 2:创建或重复使用 DSN 文件
可以创建 DSN (数据源名称) 文件 ,也可以重复使用现有的。 如果要对不同的链接和导入操作重复使用相同的连接信息,或者希望与同样使用 DSN 文件的其他应用共享此信息,请使用 DSN 文件。 可以使用数据连接管理器直接创建 DSN 文件。 有关详细信息,请参阅管理 ODBC 数据源。
尽管你仍然可以使用早期版本的 SQL ODBC 驱动程序,但我们建议使用版本 13.1,因为它包含许多改进并支持新的 SQL Server 2016 功能。 有关详细信息,请参阅 Windows 上的 Microsoft ODBC Driver for SQL Server。
执行下列操作之一:
如果希望使用的 DSN 文件已存在,请从列表中选择该文件。
可能需要再次输入密码,具体取决于在连接信息中输入的身份验证方法。
新建 DSN 文件:
选择“新建”。
选择“ODBC Driver 13 for SQL Server”,然后选择“下一步”。
输入 DSN 文件的名称,或选择“ 浏览 ”以在其他位置创建文件。
选择 下一步 查看摘要信息,然后选择 完成。
步骤 3:使用“创建到 SQL Server 的新数据源”向导
在“创建到 SQL Server 的新数据源”向导中,执行下列操作:
在第 1 页上,输入标识信息:
- 在 “说明” 框中,可以输入有关 DSN 文件的描述性信息。
- 在“服务器”框中,输入 SQL Server 的名称。 不要选择向下箭头。
在第 2 页上,选择下面某个身份验证方法:
- 使用集成 Windows 身份验证:通过 Windows 用户帐户连接。 还可以输入服务主体名称 (SPN) 。 有关详细信息,请参阅客户端 连接 (ODBC 中) 服务主体名称 (SPN) 。
- 使用 SQL Server 身份验证...:通过输入在数据库中设置的登录 ID 和密码进行连接。
在第 3 页和第 4 页上,选择要为连接自定义的选项。 有关这些选项的详细信息,请参阅适用于 SQL Server 的 Microsoft ODBC 驱动程序。
之后会出现确认设置的屏幕。 选择“ 测试数据源 ”以确认连接。
可能需要登录数据库。 在“SQL Server 登录”对话框中,输入登录 ID 和密码。 若要更改其他设置,请选择“选项”。
阶段 4:选择要链接或导入的表和视图
在“ 链接表 或 导入对象 ”对话框的 “表”下,选择要链接或导入的每个表或视图,然后选择“ 确定”。
在链接操作中,确定是否选择“保存密码”。
选择此选项意味着你在每次打开 Access 和访问数据时都无需输入凭据。 但它在 Access 数据库中存储一个未加密的密码。 任何可以访问源内容的人都可以看到用户名和密码。 如果选择此选项,强烈建议将 Access 数据库存储在受信任的位置并创建 Access 数据库密码。 有关详细信息,请参阅决定是否信任数据库和使用数据库密码加密数据库。
如果决定不保存密码,但后来改变主意,则需要删除并重新创建链接表,然后选择“ 保存密码”。
步骤 5:创建规格和任务(仅限导入)
- 在“获取外部数据 - ODBC 数据库”对话框中,可将导入步骤另存为规格,并创建一个 Outlook 任务来定期自动执行导入操作。 有关详细信息,请参阅将导入或导出操作的详细信息保存为规格。
结果
链接或导入操作完成后,表将显示在导航窗格中,其名称将与 SQL Server 表或视图同名,并结合所有者名称。 例如,如果 SQL 名称 dbo.Product,则 Access 名称为 dbo_Product。 如果该名称已被使用,Access 会 1 追加到新表名称,例如 dbo_Product1。 如果 也已在使用中,Access dbo_Product1 会创建 dbo_Product2,以此类推。 可以将表重命名为更有意义的名称。
在导入操作中,Access 永远不会覆盖数据库中的表。 虽然不能直接将 SQL Server 数据追加到现有表,但可以在导入类似表中的数据后创建追加查询。
在链接操作中,如果列在 SQL Server 表中是只读的,那么它们在 Access 中也是只读的。
提示
若要查看连接字符串,请将鼠标悬停在导航窗格中的表上。
更新链接表的设计
无法添加、删除或修改链接表中的列或更改数据类型。 如果要进行设计更改,请在 SQL Server 数据库中进行更改。 若要查看 Access 中的设计更改,请更新链接表:
- 选择 “外部数据>链接表管理器”。
- 选择想要更新的每个链接表,选择“确定”,然后选择“关闭”。
比较数据类型
Access 和 SQL Server 对某些数据类型使用不同的名称。 例如,使用bit数据类型的 SQL Server 列将作为数据类型导入Yes/No或链接到 Access 中。 有关详细信息,请参阅比较 Access 和 SQL Server 数据类型。
我还需了解哪些信息?
- 若要了解如何将导入的详细信息保存为可供稍后使用的规范,请参阅将导入或导出操作的详细信息另存为规范一文。
- 若要了解如何运行已保存的导入规范,请参阅运行保存的导入或导出操作一文。
- 若要了解如何计划在特定时间运行规范,请参阅计划导入或导出操作一文。
- 有关如何更改规范名称,删除规范或更新规范中源文件名的相关信息,请参阅管理数据任务一文。