可以链接到或从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 和密码进行连接。
在第三页和第四页中,选择要为连接自定义的选项。 有关这些选项的详细信息,请参阅 Microsoft ODBC Driver for SQL Server。
之后会出现确认设置的屏幕。 选择“ 测试数据源” 以确认连接。
可能需要登录到数据库。 在“SQL Server登录”对话框中,输入登录 ID 和密码。 若要更改其他设置,请选择“选项”。
阶段 4:选择要链接到或导入的表和视图
在“ 链接表 或 导入对象 ”对话框中的“ 表”下,选择要链接或导入的每个表或视图,然后选择“ 确定”。
在链接操作中,确定是否选择“保存密码”。
选择此选项意味着无需在每次打开 Access 并访问数据时输入凭据。 但是,它将未加密的密码存储在 Access 数据库中。 可访问源内容的任何人都可以查看用户名和密码。 如果选择此选项,我们强烈建议将 Access 数据库存储在受信任位置并创建 Access 数据库密码。 有关详细信息,请参阅决定是否信任数据库和使用数据库密码加密数据库。
如果你决定不保存密码,但后来改变了主意,则需要删除并重新创建链接表,然后选择“ 保存密码”。
步骤 5:创建规格和任务(仅限导入)
- 在“获取外部数据 - ODBC 数据库”对话框中,可将导入步骤另存为规格,并创建一个 Outlook 任务来定期自动执行导入操作。 有关详细信息,请参阅将导入或导出操作的详细信息保存为规格。
结果
链接或导入操作完成后,表会显示在导航窗格中,其名称与SQL Server表或视图的名称相同,并结合所有者名称。 例如,如果 SQL 名称为 dbo.Product,则 Access 名称为 dbo_Product。 如果该名称已在使用中,Access 会 1 追加到新的表名称,例如 dbo_Product1。 如果 dbo_Product1 也已在使用中,Access 将 dbo_Product2创建 ,依此类。 可以将表重命名为更有意义的内容。
在导入操作中,Access 永远不会覆盖数据库中的表。 虽然无法直接将SQL Server数据追加到现有表,但可以在从类似表导入数据后创建追加查询。
在链接操作中,如果列在SQL Server表中是只读的,则它们在 Access 中也是只读的。
提示
若要查看连接字符串,请将鼠标悬停在导航窗格中的表上。
更新链接表的设计
不能在链接表中添加、删除或修改列或更改数据类型。 如果要进行设计更改,请在 SQL Server 数据库中进行更改。 若要查看 Access 中的设计更改,请更新链接表:
- 选择“ 外部数据>链接表管理器”。
- 选择想要更新的每个链接表,选择“确定”,然后选择“关闭”。
比较数据类型
Access 和 SQL Server对某些数据类型使用不同的名称。 例如,使用bit数据类型的SQL Server列作为数据类型导入或链接到 AccessYes/No。 有关详细信息,请参阅比较 Access 和SQL Server数据类型。
我还需了解哪些信息?
- 若要了解如何将导入的详细信息保存为可供稍后使用的规范,请参阅将导入或导出操作的详细信息另存为规范一文。
- 若要了解如何运行已保存的导入规范,请参阅运行保存的导入或导出操作一文。
- 若要了解如何计划在特定时间运行规范,请参阅计划导入或导出操作一文。
- 有关如何更改规范名称,删除规范或更新规范中源文件名的相关信息,请参阅管理数据任务一文。