文章編號: 971136 - 上次校閱: 2009年11月24日 - 版次: 2.0

FIX: 錯誤訊息,當您同步處理資料庫或以手動方式執行的 sp_replcmds 之後在 SQL Server 2008 中的 varbinary(max) 資料行上執行部分的更新:"的資料列集並不包含任何資料行具有位移為-1"

系統提示本文適用於您使用的作業系統之外的作業系統。與您不相關的文章內容已停用。
Microsoft 為一個可下載檔案散佈 Microsoft SQL Server 2008 的修正程式。因為修正程式是累積,每個新版本包含所有 Hotfix 及先前的 SQL Server 2008 隨附所有安全性修正程式都修正發行。

在此頁中

全部展開 | 全部摺疊

徵狀

考慮下列案例:
  • 您有正在執行 Microsoft SQL Server 2008 的電腦。
  • 您有包含 varbinary(max) 資料行的資料表。
  • 您設定在資料表上複寫。
  • 資料行上執行部分的更新。
在這種情況下當您同步處理資料庫,或以手動方式執行該 sp_replcmds 預存程序可能會收到下列錯誤訊息:
訊息 18821,層級 16,4,狀態程序 sp_replcmds 行 1
資料列集並不包含任何資料行具有位移為-1。備份發行集資料庫,請聯絡客戶支援服務。
訊息 18805,層級 16,狀態 1,程序 sp_replcmds 行 1
記錄檔掃描程序無法建構來自記錄序號 (LSN) {000002a9:0000118a:003b} 的複寫的命令。備份發行集資料庫,請聯絡客戶支援服務。

如果您在執行以下查詢會發現 LOP_DELETE_ROWS 和基底從部分更新的資料列上的 LOP_INSERT_ROWS 作業不斷遺失:
select * from fn_dblog(null, null) where Description='replicate'

發生的原因

部分更新執行 varbinary(max) 資料行上時, SQL Server 不會強制更新基底資料列上。不過,複寫,預期的行為是伺服器強制基底資料列的更新。

解決方案

累積更新資訊

SQL Server 2008

這個問題的修正程式先於發行累計更新 6。如需有關如何取得此累積更新套件的 SQL Server 2008 的詳細資訊,按一下 [下列面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
971490? (http://support.microsoft.com/kb/971490/ ) SQL Server 2008 的累積更新套件 6
附註因為組建是累計,每個新的修正程式版本包含所有 Hotfix 及先前的 SQL Server 2008 隨附所有安全性修正程式都修正版本。我們建議您考慮安裝最新的修正程式發行版本包含此 Hotfix。如需詳細資訊,請按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
956909? (http://support.microsoft.com/kb/956909/ ) SQL Server 2008 建置發行 SQL Server 2008 之後所發行

SQL Server 2008 Service Pack 1

這個問題的修正程式先於累計更新 3 的 SQL Server 2008 Service Pack 1 發行。如更多有關此累積更新套件,按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
971491? (http://support.microsoft.com/kb/971491/LN/ ) SQL Server 2008 Service Pack 1 的累積更新套件 3
附註因為組建是累計,每個新的修正程式版本包含所有 Hotfix 及先前的 SQL Server 2008 隨附所有安全性修正程式都修正版本。Microsoft 建議您考慮安裝最新的修正程式發行版本包含此 Hotfix。如需詳細資訊,請按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
970365? (http://support.microsoft.com/kb/970365/LN/ ) SQL Server 2008 建置發行 SQL Server 2008 Service Pack 1 之後所發行
Microsoft SQL Server 2008 的 Hotfix 會建立特定的 SQL Server Service Pack。您必須將 SQL Server 2008 Service Pack 1 Hotfix 套用至 SQL Server 2008 Service Pack 1 的安裝。預設狀況下,在 SQL Server Service Pack 中提供任何 Hotfix 包含在下一個 SQL Server Service Pack。

Hotfix 資訊

Microsoft 提供支援的 Hotfix。不過,此 Hotfix 旨在修正本文中所述隨問題。只會發生此特定問題的系統套用此 Hotfix。這個 Hotfix 可能會接受額外的測試。因此,如果您不會嚴重影響這個問題,我們建議您等候下一個包含此 Hotfix 的軟體更新。

如果此 Hotfix 可供下載,您可在本知識庫文件的頂端找到「 可用的 Hotfix 下載 」區段。如果本節 Does Not Appear 請連絡[ Microsoft 客戶服務 ] 和 [ 支援 ] 以取得此 Hotfix。

附註如果發生其他問題,或如果需要任何疑難排解,您可能必須建立個別的服務要求。和此 Hotfix 無關的額外支援問題適用一般的支援費用。如需 Microsoft 客戶服務支援部門電話號碼的完整清單或要建立個別的服務要求,請造訪下列 Microsoft 網站:
http://support.microsoft.com/contactus/?ws=support (http://support.microsoft.com/contactus/?ws=support)
附註「 下載 Hotfix 」 表單會顯示此 Hotfix 會出現,以供使用的語言。如果您沒有看到您的語言,是因為此 Hotfix 是不適用您的語言。

必要條件

您必須有 SQL Server 2008 Service Pack 1 之前套用這個 Hotfix 安裝。

重新啟動資訊

您沒有套用此 Hotfix 之後重新啟動電腦。

登錄資訊

您沒有變更登錄。

Hotfix 檔案資訊

此 Hotfix 包含只需修正本文所列問題的那些檔案。此 Hotfix 並未包含必須將產品完整更新至最新版組建的所有檔案。

此 Hotfix 的英文版在檔案屬性 (或更新版本的檔案屬性) 如下列表格中所列。這些檔案的日期和時間為 Coordinated Universal Time (UTC)。當您檢視檔案資訊時,會將它轉換為當地時間。若要到 UTC 與當地時間差異使用在 [日期及時間 中項目控制台中的 [時區] 索引標籤]。

32 位元版本

SQL Server 2008 資料庫服務核心共用
摺疊此表格展開此表格
檔案名稱檔案版本檔案大小日期時間平台
Distrib.exe2007.100.2721.075,11223-Jun-200912: 01x86
Iftsph.dll2007.100.2721.038,24823-Jun-200912: 34x86
Logread.exe2007.100.2721.0423,27223-Jun-200913: 15x86
Microsoft.sqlserver.sqlenum.dll10.0.2721.01,083,22423-Jun-200913: 24x86
Rdistcom.dll2007.100.2721.0651,11223-Jun-200913: 51x86
Repldp.dll2007.100.2721.0191,33623-Jun-200913: 51x86
Replmerg.exe2007.100.2721.0341,35223-Jun-200913: 51x86
Snapshot.exe10.0.2721.013,14423-Jun-200914: 58x86
Sql_engine_core_shared_keyfile.dll2007.100.2721.013,67223-Jun-200913: 01x86
Sqllogship.exe10.0.2721.096,08823-Jun-200914: 59x86
Sqlmergx.dll2007.100.2721.0192,85623-Jun-200914: 59x86
SQL Server 2008 資料庫服務核心執行個體
摺疊此表格展開此表格
檔案名稱檔案版本檔案大小日期時間平台
Databasemailengine.dll10.0.2721.075,60823-Jun-200911: 46x86
Databasemailprotocols.dll10.0.2721.042,85623-Jun-200911: 46x86
Sql_engine_core_inst_keyfile.dll2007.100.2721.013,67223-Jun-200913: 01x86
Sqlaccess.dll2007.100.2721.0405,33623-Jun-200914: 58x86
Sqlscriptdowngrade.dll2007.100.2721.014,68023-Jun-200915: 00x86
Sqlscriptupgrade.dll2007.100.2721.03,374,44023-Jun-200915: 00x86
Sqlservr.exe2007.100.2721.042,728,79223-Jun-200915: 00x86
SQL Server 2008 資料庫服務常見核心
摺疊此表格展開此表格
檔案名稱檔案版本檔案大小日期時間平台
Microsoft.sqlserver.sqlenum.dll10.0.2721.01,083,22423-Jun-200913: 24x86
Msgprox.dll2007.100.2721.0202,08823-Jun-200913: 26x86
Replprov.dll2007.100.2721.0575,32023-Jun-200913: 51x86
Replrec.dll2007.100.2721.0789,84823-Jun-200913: 51x86
Replsub.dll2007.100.2721.0410,96823-Jun-200913: 51x86
Sql_common_core_keyfile.dll2007.100.2721.013,67223-Jun-200913: 01x86
Xmlsub.dll2007.100.2721.0192,34423-Jun-200915: 06x86

x x64 版本

SQL Server 2008 資料庫服務核心共用
摺疊此表格展開此表格
檔案名稱檔案版本檔案大小日期時間平台
Distrib.exe2007.100.2721.086,88823-Jun-200916: 07x64
Iftsph.dll2007.100.2721.054,63223-Jun-200916: 24x64
Logread.exe2007.100.2721.0510,80823-Jun-200916: 44x64
Microsoft.sqlserver.sqlenum.dll10.0.2721.01,083,22423-Jun-200913: 24x86
Rdistcom.dll2007.100.2721.0789,86423-Jun-200917: 07x64
Repldp.dll2007.100.2721.0191,33623-Jun-200913: 51x86
Repldp.dll2007.100.2721.0229,72023-Jun-200917: 07x64
Replmerg.exe2007.100.2721.0408,42423-Jun-200917: 08x64
Snapshot.exe10.0.2721.013,14423-Jun-200914: 58x86
Snapshot.exe10.0.2721.013,14423-Jun-200917: 52x86
Sql_engine_core_shared_keyfile.dll2007.100.2721.014,16823-Jun-200916: 37x64
Sqllogship.exe10.0.2721.096,08823-Jun-200917: 53x86
Sqlmergx.dll2007.100.2721.0229,22423-Jun-200917: 53x64
SQL Server 2008 資料庫服務核心執行個體
摺疊此表格展開此表格
檔案名稱檔案版本檔案大小日期時間平台
Databasemailengine.dll10.0.2721.075,60823-Jun-200916: 01x86
Databasemailprotocols.dll10.0.2721.042,84023-Jun-200916: 01x86
Sql_engine_core_inst_keyfile.dll2007.100.2721.014,16823-Jun-200916: 37x64
Sqlaccess.dll2007.100.2721.0411,99223-Jun-200917: 52x86
Sqlscriptdowngrade.dll2007.100.2721.015,72023-Jun-200917: 54x64
Sqlscriptupgrade.dll2007.100.2721.03,373,92823-Jun-200917: 54x64
Sqlservr.exe2007.100.2721.057,894,76023-Jun-200917: 54x64
SQL Server 2008 資料庫服務常見核心
摺疊此表格展開此表格
檔案名稱檔案版本檔案大小日期時間平台
Microsoft.sqlserver.sqlenum.dll10.0.2721.01,083,22423-Jun-200913: 24x86
Microsoft.sqlserver.sqlenum.dll10.0.2721.01,083,22423-Jun-200916: 49x86
Msgprox.dll2007.100.2721.0202,08823-Jun-200913: 26x86
Msgprox.dll2007.100.2721.0246,10423-Jun-200916: 50x64
Replprov.dll2007.100.2721.0575,32023-Jun-200913: 51x86
Replprov.dll2007.100.2721.0727,40023-Jun-200917: 08x64
Replrec.dll2007.100.2721.0789,84823-Jun-200913: 51x86
Replrec.dll2007.100.2721.0976,74423-Jun-200917: 08x64
Replsub.dll2007.100.2721.0410,96823-Jun-200913: 51x86
Replsub.dll2007.100.2721.0492,39223-Jun-200917: 08x64
Sql_common_core_keyfile.dll2007.100.2721.014,16823-Jun-200916: 37x64
Xmlsub.dll2007.100.2721.0192,34423-Jun-200915: 06x86
Xmlsub.dll2007.100.2721.0308,07223-Jun-200917: 58x64

Itanium 架構版本

SQL Server 2008 資料庫服務核心共用
摺疊此表格展開此表格
檔案名稱檔案版本檔案大小日期時間平台
Distrib.exe2007.100.2721.0205,65623-Jun-200917: 44ia64
Iftsph.dll2007.100.2721.088,42423-Jun-200918: 02ia64
Logread.exe2007.100.2721.01,124,71223-Jun-200918: 22ia64
Microsoft.sqlserver.sqlenum.dll10.0.2721.01,083,22423-Jun-200913: 24x86
Rdistcom.dll2007.100.2721.01,835,36823-Jun-200918: 46ia64
Repldp.dll2007.100.2721.0191,33623-Jun-200913: 51x86
Repldp.dll2007.100.2721.0522,60023-Jun-200918: 46ia64
Replmerg.exe2007.100.2721.0969,57623-Jun-200918: 46ia64
Snapshot.exe10.0.2721.013,14423-Jun-200914: 58x86
Snapshot.exe10.0.2721.013,14423-Jun-200919: 30x86
Sql_engine_core_shared_keyfile.dll2007.100.2721.019,30423-Jun-200918: 15ia64
Sqllogship.exe10.0.2721.096,08823-Jun-200919: 31x86
Sqlmergx.dll2007.100.2721.0428,37623-Jun-200919: 31ia64
SQL Server 2008 資料庫服務核心執行個體
摺疊此表格展開此表格
檔案名稱檔案版本檔案大小日期時間平台
Databasemailengine.dll10.0.2721.075,60823-Jun-200917: 38x86
Databasemailprotocols.dll10.0.2721.042,84023-Jun-200917: 38x86
Sql_engine_core_inst_keyfile.dll2007.100.2721.019,30423-Jun-200918: 15ia64
Sqlaccess.dll2007.100.2721.0398,68023-Jun-200919: 30x86
Sqlscriptdowngrade.dll2007.100.2721.020,82423-Jun-200919: 32ia64
Sqlscriptupgrade.dll2007.100.2721.03,380,05623-Jun-200919: 32ia64
Sqlservr.exe2007.100.2721.0111,005,01623-Jun-200919: 33ia64
SQL Server 2008 資料庫服務常見核心
摺疊此表格展開此表格
檔案名稱檔案版本檔案大小日期時間平台
Microsoft.sqlserver.sqlenum.dll10.0.2721.01,083,22423-Jun-200913: 24x86
Microsoft.sqlserver.sqlenum.dll10.0.2721.01,083,24023-Jun-200918: 27x86
Msgprox.dll2007.100.2721.0202,08823-Jun-200913: 26x86
Msgprox.dll2007.100.2721.0534,37623-Jun-200918: 28ia64
Replprov.dll2007.100.2721.0575,32023-Jun-200913: 51x86
Replprov.dll2007.100.2721.01,640,80823-Jun-200918: 46ia64
Replrec.dll2007.100.2721.0789,84823-Jun-200913: 51x86
Replrec.dll2007.100.2721.02,125,16023-Jun-200918: 46ia64
Replsub.dll2007.100.2721.0410,96823-Jun-200913: 51x86
Replsub.dll2007.100.2721.01,111,91223-Jun-200918: 46ia64
Sql_common_core_keyfile.dll2007.100.2721.019,30423-Jun-200918: 15ia64
Xmlsub.dll2007.100.2721.0192,34423-Jun-200915: 06x86
Xmlsub.dll2007.100.2721.0558,93623-Jun-200919: 37ia64

狀況說明

Microsoft 已確認<適用於>一節所列之 Microsoft 產品確實有此問題。

?考

如更多有關累加式的維修模型為 SQL Server,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項:
935897? (http://support.microsoft.com/kb/935897/ ) 累加式的維修模型是可以從 SQL Server 小組來傳遞回報問題的 Hotfix


如 SQL Server 更新命名的結構描述的更多有關,按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
822499? (http://support.microsoft.com/kb/822499/ ) Microsoft SQL Server 軟體更新套件的新命名結構描述


如需有關軟體更新術語的詳細資訊,按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
824684? (http://support.microsoft.com/kb/824684/ ) 用來描述 Microsoft 軟體更新標準術語的說明

這篇文章中的資訊適用於:
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Workgroup
關鍵字:?
kbmt kbsurveynew kbexpertiseadvanced kbqfe kbfix KB971136 KbMtzh
機器翻譯機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:971136? (http://support.microsoft.com/kb/971136/en-us/ )
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。