您的位置:首页 > 数据库

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

2011-12-13 15:16 711 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: