新系統在測試db上都正常,要轉到 production db上,在設置link server就出現下面的錯誤訊息:
Cannot obtain the schema rowset "DBSCHEMA_TABLES_INFO" for OLE DB provider "SQLNCLI" for linked server "XXXXXX".The provider supports the interface, but returns a failure code when it is used
原來是測試db之前的dba是安裝在32 bit上,而要建立link server的db是SQL SERVER 2000(他們team今年要升級到SQL SEVRER 2008,加油喔,已經delay了喔...),
所以系統建立時都沒有問題,我也就沒有特別去注意,
但是production db 是SQL SERVER 2008 64 bit了,結果設置時就出錯啦...
解決方式:
1.確認SQL SERVER 2000已經升級到SP3 or SP4,不是的話,就直接升級到SQL SERVER 2000 SP4(有預算的話,當然最好直接上到2008 R2啊...)
2.執行instcat.sql, instcat.sql檔案附在SQL Server 2000 SP3 或 SP4 之中
先執行 cmd.exe
使用 Windows 驗證模式
對於預設執行個體
osql -E -S <LinkedServerName> -i <Location>\instcat.sql
對 於具名執行個體
osql -E -S <LinkedServerName>\<InstanceName> -i <Location>\instcat.sql
使用 SQL Server 驗證模式
對於預設執行個體
osql -U <AdminLogin> -P <AdminPassword> -S <LinkedServerName> -i <Location>\instcat.sql
對 於具名執行個體
osql -U <AdminLogin> -P <AdminPassword> -S <LinkedServerName>\<InstanceName> -i <Location>\instcat.sql