FIX: 呼叫本機預存程序內的遠端預存程序時傳遞文字參數原因 AV

重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。

299366
本文已封存。本文係以「現狀」提供且不會再更新。
Bug #: 351307 (SHILOH_BUGS)
徵狀
在本機的預存程序內的遠端預存程序呼叫時傳遞 TEXT 參數可能會發生存取違規 (AV) 造成本機伺服器上。

這個問題已隔離至下列條件:
  • 在目的地] 伺服器上沒有接受 TEXT (或 NTEXT) 參數的預存程序。
  • 來源] 伺服器上沒有本機的預存程序時傳遞 TEXT (或 NTEXT) 參數以完整格式名稱呼叫遠端預存程序在目的伺服器上。
解決方案
如果要解決這個問題,取得最新的 Service Pack,SQL Server 2000。如需詳細資訊按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
290211INF: 如何取得最新的 SQL Server 2000 Service Pack
其他可行方案
讓預存程序呼叫的直接,修改 TEXT (或 NTEXT) 欄位。
狀況說明
Microsoft 已確認這是在 SQL Server 2000 中的問題。這個問題已經先在 SQL Server 2000 Service Pack 1 中獲得修正。
其他相關資訊

重製行為的步驟

下列步驟重現上 SQL Server 2000 組建 8.00.194 問題:
  1. 在來源] 伺服器上建立連結的伺服器的目的伺服器。
  2. 連線至來源伺服器使用 Query Analyzer 並執行下列查詢:
    use pubsgoCREATE procedure sp_local@ptxtText TEXTasexec destination_servername here.pubs.dbo.sp_remote  @ptxtTextGO					
  3. 在目的地] 伺服器上建立預存程序,如下所示:
    use pubsgocreate procedure sp_remote@ptxtTest TEXTasgo					
  4. 在來源伺服器上執行下列查詢:
    sp_local 'mytest'					
    發生存取違規發生在來源伺服器上。
-------------------------------------------------------------------------------Short Stack Dump00000000 Module(sqlservr+FFC00000)006D6FF9 Module(sqlservr+002D6FF9) (CXVariant::ClearDeep(void)+00000047)0040A849 Module(sqlservr+0000A849) (CXVariant::Clear(void)+0000000D)006134D6 Module(sqlservr+002134D6)(CExecParamTbl::ResetTextParams(void)+00000046)0079726F Module(sqlservr+0039726F) (CRuleCollection::LoadRules(class IMemObj *)+00004B19)-------------------------------------------------------------------------------				
AV ; 遠端程序呼叫

警告:本文已自動翻譯

內容

文章識別碼:299366 - 最後檢閱時間:01/16/2015 22:40:26 - 修訂: 3.2

  • Microsoft SQL Server 2000 Standard Edition
  • kbnosurvey kbarchive kbmt kbbug kbfix kbsqlserv2000sp1fix KB299366 KbMtzh
意見反應