SQL Server Developer Edition链接服务器无法使用问题求助
SQL Server 16版本链接服务器报错(MSOLEDBSQL相关)解决方法
1. 验证SQLNCLI11驱动的完整性与注册状态
- 检查系统目录下的驱动文件:64位系统查看
C:\Windows\System32\sqlncli11.dll,32位系统查看C:\Windows\SysWOW64\sqlncli11.dll,确认文件存在且未损坏 - 以管理员身份运行命令提示符,注册驱动:
- 64位:
regsvr32 "C:\Windows\System32\sqlncli11.dll" - 32位:
regsvr32 "C:\Windows\SysWOW64\sqlncli11.dll"
执行后确认提示“DllRegisterServer在sqlncli11.dll已成功”
- 64位:
- 打开SQL Server配置管理器,展开SQL Native Client 11.0的客户端协议,确保TCP/IP协议已启用
2. 修正链接服务器的提供程序配置覆盖问题
尽管用sp_addlinkedserver指定了SQLNCLI11,SQL Server 16可能默认调用MSOLEDBSQL,需手动修正:
- 打开SSMS,依次展开服务器对象→链接服务器,右键目标链接服务器选择属性
- 切换到提供程序选项卡,选中
SQL Native Client 11.0,勾选允许进程内选项 - 切换到安全性选项卡,确认登录映射规则和团队成员完全一致(比如选择“使用此安全上下文建立连接”并填入正确的账号密码)
- 也可通过T-SQL强制配置服务器选项:
EXEC master.dbo.sp_serveroption @server=N'srvTest', @optname=N'rpc', @optvalue=N'true' EXEC master.dbo.sp_serveroption @server=N'srvTest', @optname=N'rpc out', @optvalue=N'true' EXEC master.dbo.sp_serveroption @server=N'srvTest', @optname=N'use remote collation', @optvalue=N'true'
3. 调整SQL Server 16的兼容性设置
- 将本地数据库的兼容性级别调整为与团队15版本一致(如150):
ALTER DATABASE [你的业务数据库名] SET COMPATIBILITY_LEVEL = 150 - 检查强制加密设置:打开SQL Server配置管理器,展开SQL Server网络配置→你的实例协议,右键TCP/IP选属性,在IP地址选项卡的IPALL区域,确认强制加密设为否
4. 解决MSOLEDBSQL驱动冲突
- 卸载已安装的MSOLEDBSQL19,下载并安装MSOLEDBSQL 17版本(与SQLNCLI11兼容性更匹配)
- 安装完成后,执行以下SQL确认提供程序注册状态:
确保两个提供程序都出现在结果列表中SELECT name, description FROM sys.providers WHERE name IN ('SQLNCLI11', 'MSOLEDBSQL')
内容的提问来源于stack exchange,提问作者markaaronky
相关产品推荐
相关产品推荐

