SQL Server 2008 64Bit 透過Link Server 的方法連結到SQL Server 2000 32Bit.無法正常使用

 SQL Server 2008 64Bit 透過Link Server 的方法連結到SQL Server 2000 32Bit.無法正常使用


 連結數據庫方法如下:

sp_addLinkedserver @server='linkedSQLDB',@srvproduct='SQLOLEDB',@provider='SQLOLEDB',@datasrc ='sqlserver1',@catalog=N'master'

EXEC sp_addlinkedsrvlogin 
     'linkedSQLDB', --被访问的服务器别名
     'false', 
     NULL, 
     'sa', --帐号
     'sa' --密码
sp_dropserver @server='linkedSQLDB' 移除


當在SQL Server 64位上執行

select * from linkedSQLDB.master.dbo.sysobjects

會出錯:

The stored procedure required to complete this operation could not be found on the server.Please contact your system administrator. (伺服器上找不到完成這項作業所需要的預存程序。請和系統管理員連絡)
Msg 7311, Level 16, State 2, Line 1 (訊息 7311,層級 16,狀態 2,行 1)
Cannot obtain the schema rowset "DBSCHEMA_TABLES_INFO" for OLE DB provider "SQLNCLI" for linked server "<LinkedServerName>".The provider supports the interface, but returns a failure code when it is used. (無法為連結伺服器 <LinkedServerName> 的 OLE DB 提供者 "SQLNCLI" 取得結構描述資料列集 "DBSCHEMA_TABLES_INFO"。提供者支援介面,但在使用時傳回失敗碼。)

 

原因:

64位和32位有一些系統的存儲過程不一致,有兼容性問題。

 

解決方法:

1.把SQL Server2000升級到sp3或sp4

2.把sp裡的instcat.sql找出來,在sql server2000裡手動執行。

3.問題解決

 

注:

我在測試過程中,把sp4裡的instcat.sql放在 sql server2000 sp3服務器裡執行後,問題同樣解決

 

micosoft裡的說明如下:

http://support.microsoft.com/kb/906954/

參考:

http://www.dotblogs.com.tw/jamesbi/archive/2010/11/19/19546.aspx


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值