欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

sql server 2012 链接服务器不能链接sql server 2000的解决方案 ,

程序员文章站 2022-11-24 08:18:18
本数据源来自 https://www.kafan.cn/edu/922556.html 目的为了备忘 把原来的sql server 2005直接装成了2012,然后在建立链接服务器链接一台sql server 2000的服务器时,报错信息大概是“SQL Server Native Client 11 ......

本数据源来自 https://www.kafan.cn/edu/922556.html  目的为了备忘

 

把原来的sql server 2005直接装成了2012,然后在建立链接服务器链接一台sql server 2000的服务器时,报错信息大概是“sql server native client 11.0 不支持链接sql server 2000 及更早版本”,但是在sql server2012中连接其他sql server数据库时可以使用以下代码:

exec sp_addlinkedserver 'itsv', '', 'sqloledb', 'serverip'
exec sp_addlinkedsrvlogin 'itsv', 'false ',null, 'sa', 'password'

但是在sql server2000时的建立连接成功,但是在使用时会出现以下错误提示:“访问接口msdasql 返回了消息 odbc驱动程序管理器未发现数据源名称并且未指定默认” 

根据提示并查阅微软 sql server native client 的支持策略 可知,sql server2012默认自带的是native client 11.0,并且不再对sql server 2000或更早的版本支持。我们可以通过下载并安装native client10.5 或者native client10,并在连接时指定驱动解决。

sql server native client 10 下载  后面附下载地址

 

安装完成后使用以下代码进行连接。

exec sp_addlinkedserver
@server='itsv', --'itsv'链接服务器名称
@srvproduct = 'sqlserver',
@provider = 'msdasql',
@datasrc = null,
@location = null,
@provstr = 'driver={sql server native client 10.0};server=serverip;',  --serverip 需要链接服务器地址
@catalog = null
go
exec sp_addlinkedsrvlogin
@rmtsrvname='itsv',  --'itsv'链接服务器名称 同上一步
@useself='false',
@rmtuser='sa',--'sa'用户名
@rmtpassword='password'; --'password'  密码
go

以上代码中指定使用native client 10.0为驱动,使用方式完全与本地相同。
sql server native client 11.0 支持与 sql server 2005、sql server 2008、sql server 2008 r2、sql server 2012 和 windows azure sql database 的连接。
支持的操作系统版本
下表列出了支持 sql server native client 的操作系统。
sql server native client 版本
支持的操作系统
sql server native client (sql server 2005)
microsoft windows 2000 service pack 4 或更高版本
microsoft windows server 2003 或更高版本
microsoft windows xp service pack 1 或更高版本
microsoft windows vista(需要 sql server service pack 2 或更高版本)
microsoft windows server 2008(需要 sql server service pack 2 或更高版本)
sql server native client 10.0 (sql server 2008)
microsoft windows server 2003 service pack 2 或更高版本
microsoft windows xp service pack 2 或更高版本
microsoft windows vista
microsoft windows server 2008
sql server native client 10.5 (sql server 2008 r2)
microsoft windows server 2003 service pack 2 或更高版本
microsoft windows xp service pack 2 或更高版本
microsoft windows vista
microsoft windows server 2008
microsoft windows 7
sql server native client 11.0 (sql server 2012)
microsoft windows vista
microsoft windows server 2008
microsoft windows 7
microsoft windows 8
microsoft windows server 2012

 

在安装 sql server 2008 或 sql server 工具时,将同时安装 microsoft sql server native client 10.0。如果计算机上还安装了 sql server native client 的 sql server 2005 版本,则 sql server native client 10.0 将与早期版本并行安装。

microsoft sql server native client 10.0下载:  。

sql server native client 文件(sqlncli10.dll、sqlnclir10.rll 和 s10ch_sqlncli.chm)将安装到以下位置:

%systemroot%\system32\

注意:

sql server native client ole db 访问接口和 sql server native client odbc 驱动程序的所有相应注册表设置都将在安装过程中完成。

sql server native client 头文件和库文件(sqlncli.h 和 sqlncli10.lib)安装在以下位置:

%programfiles%\microsoft sql server\100\sdk

除了作为 sql server 安装过程的一部分安装 sql server native client 以外,还可以在 sql server 安装磁盘的以下位置找到名为 sqlncli.msi 的可再分发安装程序:

%cd%\setup\

您 可以通过 sqlncli.msi 分发 sql server native client。在您部署某一应用程序时,可能需要安装 sql server native client。安装多个包(对于用户而言就像是一次安装)的一种方法就是使用链接器和引导程序技术。有关详细信息,请参阅 authoring a custom bootstrapper package for visual studio 2005(为 visual studio 2005 创作自定义引导程序包)和添加自定义系统必备。

sqlncli.msi 的 x64 和 itanium 版本也会安装 sql server native client 的 32 位版。如果您的应用程序所针对的目标平台并非其开发时所使用的平台,则可以从 microsoft 下载中心下载针对 x64、itanium 和 x86 的 sqlncli.msi 版本。

在调用 sqlncli.msi 时,默认情况下只会安装客户端组件。这些客户端组件即为那些支持运行使用 sql server native client 开发的应用程序的文件。若还要安装 sdk 组件,请在命令行中指定 addlocal=all。例如:

msiexec /i sqlncli.msi addlocal=all appguid={0cc618ce-f36a-415e-84b4-fb1bff6967e1}

卸载 sql server native client

因 为诸如 sql server 服务器和 sql server 工具之类的应用程序依赖于 sql server native client,所以只有在卸载所有依赖应用程序之后才能卸载 sql server native client。若要向用户提供应用程序依赖于 sql server native client 的警告,请在 msi 中使用 appguid 安装选项,如下所示:

msiexec /i sqlncli.msi appguid={0cc618ce-f36a-415e-84b4-fb1bff6967e1}

传递给 appguid 的值是您的特定产品代码。当使用 microsoft installer 捆绑应用程序安装程序时,必须创建产品代码。