在一台Window Server 2008 x64上安裝的 SQL 2008 R2 x64資料庫中,要利用遠端連接的方式去查詢一台較古老的SQL 2000的資料庫時,雖然有設定好遠端連接伺服器,但還是出現了以下的錯誤訊息:

連結伺服器 "xxx" 的 OLE DB 提供者 "SQLNCLI10" 傳回訊息 "無法指出的錯誤"。
連結伺服器 "xxx" 的 OLE DB 提供者 "SQLNCLI10" 傳回訊息 "無法在伺服器中找到完成此操作所須的預存程序。請連絡您的系統管理員。"。
訊息 7311,層級 16,狀態 2,行 1
無法為連結伺服器 "xxxx" 的 OLE DB 提供者 "SQLNCLI10" 取得結構描述資料列集 "DBSCHEMA_TABLES_INFO"。提供者支援介面,但在使用時傳回失敗碼。


查了一下,有人說要在SQL 2000上昇級到SP3或SP4。但我看昇級的部份已經有了。後來才知道原來昇級完後,還要自行執行預存程序的昇級動作才行。

我使用的方式是在SQL 2000的本機上執行以下的指令:
osql -E -S 10.6.xx.xx -i "C:\Program Files\Microsoft SQL Server\MSSQL\Install\instcat.sql"

其中要指定的就是原本SQL 2000的IP位址。這樣就可以正常查詢了。



留言

這個網誌中的熱門文章

DOS Batch指令檔中如何記錄log資訊

用捷徑方式執行需帶入命令列參數的Windows Form程式

使用regular expression來match中括號(square bracket)