在两个sql server 2005服务器上创建链接服务器(一个是32位的,一个64位的),都成功了,代码如下
exec sp_addlinkedserver
@server = '2k',
@srvproduct='SQL2000',
@provider='SQLNCLI',
@datasrc='192.168.1.1' -----sql server 2000
goexec sp_addlinkedsrvlogin
@rmtsrvname='2k',
@useself='False',
@locallogin=NULL,
@rmtuser='user1',
@rmtpassword='user1'
go随后执行语句 :select * from [2k].db1.dbo.tbl1 得到了完全不同的结果32位的sql2005中执行成功,没任何问题。但在64位的sql2005中却报错如下:链接服务器"2k"的 OLE DB 访问接口 "SQLNCLI" 返回了消息 "未指定的错误"。
链接服务器"2k"的 OLE DB 访问接口 "SQLNCLI" 返回了消息 "在该服务器上找不到完成该操作所需的存储过程。 请与系统管理员联系。"。
消息 7311,级别 16,状态 2,第 1 行
无法获取链接服务器 "2k" 的 OLE DB 访问接口 "SQLNCLI" 的架构行集 "DBSCHEMA_TABLES_INFO"。该访问接口支持该接口,但使用该接口时返回了失败代码。
究竟该如何解决此问题,请高手赐教!
exec sp_addlinkedserver
@server = '2k',
@srvproduct='SQL2000',
@provider='SQLNCLI',
@datasrc='192.168.1.1' -----sql server 2000
goexec sp_addlinkedsrvlogin
@rmtsrvname='2k',
@useself='False',
@locallogin=NULL,
@rmtuser='user1',
@rmtpassword='user1'
go随后执行语句 :select * from [2k].db1.dbo.tbl1 得到了完全不同的结果32位的sql2005中执行成功,没任何问题。但在64位的sql2005中却报错如下:链接服务器"2k"的 OLE DB 访问接口 "SQLNCLI" 返回了消息 "未指定的错误"。
链接服务器"2k"的 OLE DB 访问接口 "SQLNCLI" 返回了消息 "在该服务器上找不到完成该操作所需的存储过程。 请与系统管理员联系。"。
消息 7311,级别 16,状态 2,第 1 行
无法获取链接服务器 "2k" 的 OLE DB 访问接口 "SQLNCLI" 的架构行集 "DBSCHEMA_TABLES_INFO"。该访问接口支持该接口,但使用该接口时返回了失败代码。
究竟该如何解决此问题,请高手赐教!
或者和LZ的补丁程序没有打好,所以一下你的安装目录下面有没有一个脚本 instcat.sql手工执行这个脚本也可以
给两个网址做参考:
http://blog.csdn.net/hb_gx/archive/2007/10/15/1826436.aspxhttp://support.microsoft.com/kb/906954/zh-tw