文章編號: 982857 - 上次校閱: 2010年11月15日 - 版次: 3.0

當您設定資料庫的交易式複寫,在 SQL Server 2008 中,或在 SQL Server 2008 R2 FIX: 錯誤訊息

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

在此頁中

全部展開 | 全部摺疊

徵狀

請考慮下列情況,Microsoft SQL Server 2008 中,或在 Microsoft SQL Server 2008 R2 中:
  • 您設定資料庫的交易式複寫。
  • 資料庫是藉由使用 read_committed_snapshot 選項設定。
  • 複寫已設定為使用原生 sync_method。 正在初始化複寫 「 訂閱者 」 然後複寫的產生快照集中。
在此的案例散發代理程式失敗,並且您可能會收到下列錯誤訊息之一:
  • <date time=""></date>SPID<id></id>複寫複寫散發
    子系統: 代理程式<agent name=""></agent>失敗。 資料列已不位於 「 訂閱者 」 套用複寫的命令時。
  • <date time=""></date>SPID<id> </id>錯誤: 14151,嚴重性: 18,狀態: 1。
    <date time=""></date>SPID<id></id>複寫複寫散發
    子系統: 代理程式<agent name=""></agent>失敗。 違規的 PRIMARY KEY 條件約束 '<primay key="" name=""></primay>'. Cannot insert duplicate key in object '<table in="" subscriber=""></table>'.

發生的原因

This issue occurs because a lock is missing when the snapshot is generated for the replication.

解決方案

累積更新資訊

SQL Server 2008 Service Pack 1

累積更新 9 的 SQL Server 2008 的 Service Pack 1 於第一次發行此問題的修正程式。 關於這個累積更新套件的詳細資訊,請按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
2083921? (http://support.microsoft.com/kb/979065/LN/ ) SQL Server 2008 的 Service Pack 1 的累積更新套件 9
附註因為組建是累積,每一個新版的修正程式會包含所有 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 服務套件中提供的任何 Hotfix 包含在下一個 SQL Server Service Pack。

SQL Server 2008 Service Pack 2

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

SQL Server 2008 R2

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

狀況說明

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

?考

For more information about SQL Server Replication, visit the following Microsoft Developer Network (MSDN) website:
SQL Server replication (http://msdn.microsoft.com/en-us/library/ms151198.aspx)
For more information about Snapshot Isolation, visit the following MSDN website:
Snapshot isolation (http://msdn.microsoft.com/en-us/library/ms175492.aspx)
SQL Server 的累加式的服務模型相關資訊,請按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
935897? (http://support.microsoft.com/kb/935897/ ) 累加式的服務模型是可用來傳遞回報問題的 Hotfix SQL Server 小組
如需有關 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 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Workgroup
  • Microsoft SQL Server 2008 R2 Datacenter
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 R2 Workgroup
關鍵字:?
kbfix kbqfe kbexpertiseadvanced kbsurveynew kbmt KB982857 KbMtzh
機器翻譯機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:982857? (http://support.microsoft.com/kb/982857/en-us/ )
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。