Web Server:
OS:window 2008 std 64位元 的環境
IIS+ asp.net
DB Server:
OS:window 2003 R2 std
DB: SQL Server 2000 sp2
當在Win2k8 R2 64位元跑 asp.net 時,出現下面訊息
--------------------------------------------------------------------------------------------------------------
The stored procedure required to complete this operation could not be found on the server.Please contact your system administrator. (伺服器上找不到完成這項作業所需要的預存程序。請和系統管理員連絡)
Cannot obtain the schema rowset "DBSCHEMA_TABLES_INFO" for OLE DB provider "SQLNCLI" for linked server "".The provider supports the interface, but returns a failure code when it is used. (無法為連結伺服器 的 OLE DB 提供者 "SQLNCLI" 取得結構描述資料列集 "DBSCHEMA_TABLES_INFO"。提供者支援介面,但在使用時傳回失敗碼。)
-----------------------------------------------------------------------------------------------------從Web Server (win2k8 R2 64位元) 跨至 DB Srver (win2003 32位元,SQL Server2000 sp2 32位元)
讀取資料時發生上面錯誤,依Microsoft技術支援 http://support.microsoft.com/kb/906954文件
發生的原因
發生這個問題的原因,是因為系統預存程序沒有升級為 SQL Server 2000 SP3 或 SQL Server 2000 SP4。
安裝 SQL Server 2000 SP3 或 SQL Server 2000 SP4 之後,您必須手動升級系統預存程序。
解決方案
如果要解決這個問題,請在 32 位元 SQL Server 2000 伺服器上安裝 SQL Server 2000 SP3 或 SQL Server 2000 SP4;
然後,在 32 位元 SQL Server 2000 伺服器上手動執行 SQL Server 2000 SP3 或 SP4 隨附的 Instcat.sql 指令碼。
----------使用 Windows 驗證模式---------
如果要使用「Windows 驗證」模式升級 SQL Server 2000 的 32 位元執行個體上的系統預存程序,請依照下列步驟進行:
1.以 SQL Server sysadmin 固定伺服器角色成員的 Windows 帳戶登入電腦。
2.按一下 [執行],輸入 cmd.exe,然後按一下 [確定]。
3.在命令提示字元中輸入下列其中一個命令,然後按下 ENTER:
對於預設執行個體
osql -E -S
對於具名執行個體
osql -E -S
注意
根據預設,這個資料夾位於 C:\Program Files\Microsoft SQL Server\MSSQL\Install。
---------使用 SQL Server 驗證模式---------
如果要使用「SQL Server 驗證」模式升級 SQL Server 2000 的 32 位元執行個體上的系統預存程序,請依照下列步驟進行:
1.使用任何 Windows 帳戶登入電腦。
2.按一下 [執行],輸入 cmd.exe,然後按一下 [確定]。
3.在命令提示字元中輸入下列命令,再按下 ENTER 鍵:
對於預設執行個體
osql -U
對於具名執行個體
osql -U
注意
注意 在您執行 Instcat.sql 指令碼之後,會產生許多訊息,最後一個訊息會指出指令碼是否執行成功。
-----------------------------------------------------------------------------------------------------------
Comment: 重點~
1. SP4 install 會在C:\ 下有一個sp4目錄,在執行目錄中 .bat檔
2. 裝好後先重開機
3.將 instcat.sql 移到C:\ 下 再用 DOS 模式執行 比較沒問題,comand 如下:
c:\osql -E –S "server名字" -i c:\instcat.sql
