在 Windows Server 2012 上,我安装了 SQL Server 2012,其中具有 SQL Server Native Client 版本 11。一位开发人员告诉我,他需要 SQL Server Native Client 版本 10.1(SQLNCLI10.1)。
我下载了本机客户端 sqlncli.msi,但收到消息“安装 SQL Server 2008 Native Client 失败,因为计算机上已经存在更高版本...”是否有其他下载需要安装,或者是否有办法从已经包含所需 Native Client 的服务器复制某些文件,然后执行注册而无需进行完整的重新安装?
任何帮助将不胜感激。
答案1
看一下这个帖子这讲述了类似的情况。作者使用了\x64\Setup\x64 folder
SQL 2008 分发媒体中的 SQL Native Client .msi。也许这样就可以了。
如果没有,您可以卸载 SQL Native Client 11,安装 v10,然后重新安装 11。
答案2
如果您无法访问分发介质,可以从Microsoft SQL Server 2008 R2 功能包. 展开“安装说明”并搜索“2008 R2 Native Client”。
答案3
这是 SQL Native Client 10.0 (2008 R2) x64 的链接 http://go.microsoft.com/fwlink/?LinkID=188401&clcid=0x409
答案4
Sqillman 的第一个答案(https://serverfault.com/a/506567/173328)有效!赞!
这就是它为我们解决的问题...
对于我们来说,答案(上面/下面?)允许从托管在运行 Windows Server 2012 OS 的 SQL Server 2012 数据库服务器上的 SQL Server 2012 Integration Services 包访问 SQL Server 2000 数据库。我们按照这些建议在我们的 2012 数据库服务器上安装 SQLNCLI10。我们出现问题的原因是托管数据库服务器从未安装过旧的 SQL 2008“SQLNCLI10”。也就是说,它从未安装过 SQL Server 2008 或更旧的操作系统。
引发我们研究的 SSIS 服务器错误是:“请求的 OLE DB 提供程序 SQLNCLI10.1 未注册”
值得注意的是,按照 squillman/technet/etc 的解决方案,在我们的一台新服务器上安装 2008 SQLNCLI.msi 时,我们收到错误“SQL Server 2008 安装失败,因为机器上已经存在更高版本...”。尽管如此,驱动程序还是安装成功,并且正常工作,没有损害 2012 db 服务器的功能。它与现有的 2012 SQLNCLI11 驱动程序一起安装得很好。
在 SSIS 2012 中,我们的包使用“OLE DB\SQL Server Native Client 10.0”连接来访问 SQL Server 2000 数据库(我们实际上只是编辑了连接字符串并将提供程序从“SQLNCLI11.1”更改为“SQLNCLI10.1”)。开发人员的机器上有两个驱动程序,我们最初部署到的数据库服务器也是如此。只有在最终的“纯”2012 服务器构建完成后,旧驱动程序才会消失,包才会失败。
注意:在连接字符串中,“Provider = SQLNCLI10.1”是“Provider = SQLNCLI10”的同义词。它们都使用相同的 dll。
-帕特里克·海耶斯,斯蒂芬尼尼