SQL 将服务器链接到 Access 数据库
SQL linked server to Access Database
我正在尝试在 SQL(SQL 2016)中创建一个连接到访问数据库(2013)的链接服务器。我不想在访问中做任何事情 - 只需从 SQL Studio Management 查询 table。我试图创建一个 ODBC 连接 - 但我只能选择 32 位 - 而不是 64 位。但是如果我创建一个 32 位(Microsoft Access Driver (*.mdb),然后使用 Microsoft OLE DB Provider for ODBC Driver 创建一个链接服务器- 数据源我正在使用系统 DSN 名称我收到此消息:
链接服务器已创建,但未通过连接测试。是否保留链接服务器?
===================================
执行 Transact-SQL 语句或批处理时发生异常。 (Microsoft.SqlServer.ConnectionInfo)
节目地点:
at Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(String sqlCommand, ExecutionTypes executionType, Boolean retry)
在 Microsoft.SqlServer.Management.Smo.ExecutionManager.ExecuteNonQuery(字符串命令,布尔重试)
在 Microsoft.SqlServer.Management.Smo.LinkedServer.TestConnection()
在 Microsoft.SqlServer.Management.SqlManagerUI.LinkedServerProperties.DoPreProcessExecution(RunType runType, ExecutionMode& executionResult)
我确实有一些其他的链接服务器——但是是 Oracle DB 的。我错过了什么吗?
好吧,如果您的 SQL 服务器是 运行 x64 位,那么您必须安装并使用 Access 数据引擎 (ACE) 的 x64 位副本。
您不能将 MS-access x32 与 x64 位版本的 SQL 服务器一起使用。
虽然 x32 或 x64 位客户端可以轻松连接到 SQL 服务器?这是有效的,因为这是一个套接字连接。
但是对于 Access,它不是从 sql 服务器到 ACE 数据引擎的套接字连接。您没有连接到“服务”。因此,这是一个进程内外部 .dll,由 SQL 服务器直接使用并用于打开 accDB 文件。
因此,使用 ACE 数据引擎的进程的位大小必须匹配。您可以在该服务器上安装 ACE x64 位数据引擎,然后就可以工作了。但是 SQL 服务器 x64 不能使用任何类型的外部 x32 位 dll - 包括 ACE 数据引擎。
我正在尝试在 SQL(SQL 2016)中创建一个连接到访问数据库(2013)的链接服务器。我不想在访问中做任何事情 - 只需从 SQL Studio Management 查询 table。我试图创建一个 ODBC 连接 - 但我只能选择 32 位 - 而不是 64 位。但是如果我创建一个 32 位(Microsoft Access Driver (*.mdb),然后使用 Microsoft OLE DB Provider for ODBC Driver 创建一个链接服务器- 数据源我正在使用系统 DSN 名称我收到此消息:
链接服务器已创建,但未通过连接测试。是否保留链接服务器?
===================================
执行 Transact-SQL 语句或批处理时发生异常。 (Microsoft.SqlServer.ConnectionInfo)
节目地点:
at Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(String sqlCommand, ExecutionTypes executionType, Boolean retry) 在 Microsoft.SqlServer.Management.Smo.ExecutionManager.ExecuteNonQuery(字符串命令,布尔重试) 在 Microsoft.SqlServer.Management.Smo.LinkedServer.TestConnection() 在 Microsoft.SqlServer.Management.SqlManagerUI.LinkedServerProperties.DoPreProcessExecution(RunType runType, ExecutionMode& executionResult)
我确实有一些其他的链接服务器——但是是 Oracle DB 的。我错过了什么吗?
好吧,如果您的 SQL 服务器是 运行 x64 位,那么您必须安装并使用 Access 数据引擎 (ACE) 的 x64 位副本。
您不能将 MS-access x32 与 x64 位版本的 SQL 服务器一起使用。
虽然 x32 或 x64 位客户端可以轻松连接到 SQL 服务器?这是有效的,因为这是一个套接字连接。
但是对于 Access,它不是从 sql 服务器到 ACE 数据引擎的套接字连接。您没有连接到“服务”。因此,这是一个进程内外部 .dll,由 SQL 服务器直接使用并用于打开 accDB 文件。
因此,使用 ACE 数据引擎的进程的位大小必须匹配。您可以在该服务器上安装 ACE x64 位数据引擎,然后就可以工作了。但是 SQL 服务器 x64 不能使用任何类型的外部 x32 位 dll - 包括 ACE 数据引擎。