KB2539378 - 修正:如果預存程序包含超過 4,000 個字元,當 Replmerg.exe 列舉對 SQL Server 中的陳述式變更時會當機

Applies To
SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Standard SQL Server 2008 R2 Web SQL Server 2008 R2 Workgroup SQL Server 2008 Developer SQL Server 2008 Enterprise SQL Server 2008 Standard SQL Server 2008 Web SQL Server 2008 Workgroup Microsoft SQL Server 2005 Enterprise Edition Microsoft SQL Server 2005 Standard Edition Microsoft SQL Server 2005 Workgroup Edition Microsoft SQL Server 2005 Service Pack 3 Microsoft SQL Server 2005 Service Pack 4

症狀

請考慮以下案例:

  • 您會變更 Microsoft SQL Server 2005、Microsoft SQL Server 2008 或 Microsoft SQL Server 2008 R2 合併出版物上所使用的預存程序陳述式。
  • 預存程序包含超過 4,000 個字元。
  • 執行合併代理程式 (Replmerg.exe) 來列舉變更。

在這種情況下,Replmerg.exe 會當機。 此外,應用程式記錄檔中會記錄類似下列的錯誤訊息:

注意

記錄檔名稱:應用程式
來源: 應用程式錯誤
日期: <日期>
事件識別碼:1000
工作類別: (100)
層級:錯誤
關鍵字:類別
使用者:不適用
Computer: <電腦名稱>
描述:
失敗的應用程式名稱:replmerg.exe,版本:2007.100.4000.0,時間戳記:0x4c92ec51
失敗的模組名稱:ntdll.dll,版本:6.1.7600.16695,時間戳記:0x4cc7b325
例外狀況代碼:0xc0000374
錯誤位移:0x00000000000c6ab2
失敗的處理序識別碼:0x1454
失敗的應用程式開始時間:0x01cbe4c4fc508bac
錯誤的應用程式路徑:D:\Program Files\Microsoft SQL Server\100\COM\replmerg.exe
失敗的模組路徑:D:\Windows\SYSTEM32\ntdll.dll
報告編號: 8811b864-50b8-11e0-90ff-000ffee506a7

記錄檔名稱:應用程式
來源:Windows 錯誤報告
日期: <日期>
事件識別碼:1001
工作類別:無
層級:資訊
關鍵字:類別
使用者:不適用
Computer: <電腦名稱>
描述:
錯誤貯體,類型 0
事件名稱:APPCRASH
回應:無法使用
Cab 識別碼: 0

問題簽章:
P1: replmerg.exe
P2: 2007.100.4000.0
P3: 4c92ec51
P4: StackHash_e266
P5:6.1.7600.16695
P6: 4cc7b325
P7: c0000374
P8: 00000000000c6ab2
P9:
P10:

附加檔案:

這些檔案可能在這裡:
D:\ProgramData\Microsoft\Windows\WER\ReportArchive\AppCrash_replmerg.exe_43c274c4abed59ae9c49f7a88c2cc6da29bd54_8fd3d3ca

分析符號:
重新檢查解決方案:0
報告編號: 8811b864-50b8-11e0-90ff-000ffee506a7
報告狀態: 0

      

原因

發生此問題的原因是 Replmerg.exe 列舉語句變更時發生堆積損毀。

解決方式

累積更新資訊

SQL Server 2008 Service Pack 3

此問題的修正程式最初在 SQL Server 2008 Service Pack 3 的累積更新 1 中發行。 如需有關此累積更新套件的詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

2617146 累積更新套件 1 適用於 SQL Server 2008 Service Pack 3 注意: 由於這些組建是累積的,因此每個新發行的修正程式都包含所有 Hotfix 和所有安全性修正程式,來自先前的 SQL Server 2008 修正程式版本。 Microsoft 建議您考慮套用包含此 Hotfix 的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

2629969 發行 SQL Server 2008 Service Pack 3 之後所發行的 SQL Server 2008 組建Microsoft會為特定 SQL Server Service Pack 建立 SQL Server 2008 Hotfix。 您必須將 SQL Server 2008 Service Pack 3 Hotfix 套用至 SQL Server 2008 Service Pack 3 的安裝。 預設情況下,SQL Server Service Pack 中提供的任何 Hotfix 都會包含在下一個 SQL Server Service Pack 中。

SQL Server 2008 Service Pack 2

此問題的修正程式最初在 SQL Server 2008 Service Pack 2 的累積更新 5 中發行。 如需有關此累積更新套件的詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

2555408 SQL Server 2008 Service Pack 2 累積更新套件 5 注意 由於這些組建是累積的,因此每個新發行的修正程式都包含所有 Hotfix 和所有安全性修正程式,這些修正程式都包含在上一個 SQL Server 2008 修正程式版本中。 Microsoft 建議您考慮套用包含此 Hotfix 的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

2402659 SQL Server 2008 Service Pack 2 發行之後所發行的 SQL Server 2008 組建Microsoft SQL Server會為特定 SQL Server Service Pack 建立 Hotfix。 您必須將 SQL Server 2008 Service Pack 2 Hotfix 套用至 SQL Server 2008 Service Pack 2 的安裝。 預設情況下,SQL Server Service Pack 中提供的任何 Hotfix 都會包含在下一個 SQL Server Service Pack 中。

SQL Server 2008 Service Pack 1

此問題的修正程式最初在 SQL Server 2008 Service Pack 1 的累積更新 15 中發行。 如需有關此累積更新套件的詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

2555406 累積更新套件 15 適用於 SQL Server 2008 Service Pack 1 注意:由於這些組建是累積的,因此每個新發行的修正程式都包含所有 Hotfix 和所有安全性修正程式,來自先前的 SQL Server 2008 修正程式版本。 Microsoft 建議您考慮套用包含此 Hotfix 的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

970365 發行 SQL Server 2008 Service Pack 1 之後所發行的 SQL Server 2008 組建Microsoft SQL Server會為特定 SQL Server Service Pack 建立 Hotfix。 您必須將 SQL Server 2008 Service Pack 1 Hotfix 套用至 SQL Server 2008 Service Pack 1 的安裝。 預設情況下,SQL Server Service Pack 中提供的任何 Hotfix 都會包含在下一個 SQL Server Service Pack 中。

SQL Server 2008 R2 Service Pack 1

此問題的修正程式最初在 SQL Server 2008 R2 Service Pack 1 的累積更新 1 中發行。 如需有關如何取得此累積更新套件的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:

2544793 SQL Server 2008 R2 Service Pack 1 的累積更新套件 1 注意: 由於組建是累積的,因此每個新發行的修正程式都包含所有 Hotfix 和先前 SQL Server 2008 R2 修正程式版本中包含的所有安全性修正程式。 建議您考慮套用包含此 Hotfix 的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

2567616 在 SQL Server 2008 R2 Service Pack 1 發行之後所發行的 SQL Server 2008 R2 組建 (機器翻譯)

SQL Server 2008 R2

此問題的修正程式最初在累積更新 8 中發行。 如需有關如何取得 SQL Server 2008 R2 的累積更新套件的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:

2534352 SQL Server 2008 R2 的累積更新套件 8 注意:由於組建是累積的,因此每個新的修正程式版本都包含所有 Hotfix 和先前 SQL Server 2008 R2 修正程式版本中包含的所有安全性修正程式。 建議您考慮套用包含此 Hotfix 的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

981356 在 SQL Server 2008 R2 發行之後所發行的 SQL Server 2008 R2 組建 (機器翻譯)

SQL Server 2005

Hotfix 資訊

Microsoft 現已提供支援的 Hotfix。 但是,它僅旨在更正本文描述的問題。 僅將其套用至發生此特定問題的系統。

若要解決此問題,請連絡 Microsoft 客戶支援服務以取得 Hotfix。 如需 Microsoft 客戶支援服務的完整電話號碼清單以及支援費用的相關資訊,請造訪下列 Microsoft 網站:

/contactus/?ws=support附註 在某些特殊情況下,如果 Microsoft 支援服務工程師認為某特定更新程式可以解決您的問題時,可能就不會收取一般因支援電話所產生的費用。 一般來說,如果有所描述之特定更新無法解決的其他支援問題,才會收取支援費用。

先決條件

若要套用此 Hotfix,您必須安裝 SQL Server 2005 Service Pack 4 (SP4) 。

重新啟動需求

套用此 Hotfix 之後,您可能必須重新啟動電腦。

Hotfix 取代資訊

此 Hotfix 不會取代先前發行的 Hotfix。

檔案詳細資訊

此 Hotfix 的英文版具有下表列出 (或更新檔案屬性) 的檔案屬性。 這些檔案的日期與時間是以國際標準時間 (UTC) 表示。 當您檢視檔案資訊時,它會轉換成當地時間。 若要查看 UTC 與當地時間的差異,請使用 [控制台] 中 [日期和時間] 項目的 [時區] 索引標籤。

適用於所有支援的 x86 版本 SQL Server 2005 資料庫引擎

檔案名稱 檔案版本 檔案大小 日期 時間 平台
Replprov.dll 2005.90.5268.0 551,776 21-Apr-11 2,246 x86

適用於所有支援的 x64 型版本 SQL Server 2005 資料庫引擎

檔案名稱 檔案版本 檔案大小 日期 時間 平台
Replprov.dll 2005.90.5268.0 751,968 21-Apr-11 22:43 x64

適用於所有支援的 IA-64 版本 SQL Server 2005 資料庫引擎

檔案名稱 檔案版本 檔案大小 日期 時間 平台
Replprov.dll 2005.90.5268.0 1,629,536 22-Apr-11 0:55 IA-64

                  

                  

狀態

Microsoft 已確認這是「適用對象」一節中列出的 Microsoft 產品中的問題。

參考資料

如需有關複寫合併代理程式的詳細資訊,請造訪下列 MSDN 網站:

關於複寫合併代理程式的一般資訊