您目前已離線,請等候您的網際網路重新連線

如果合併式發行集包含許多文件和條件約束,SQL Server Compact 3.5 修正: 」 所指定的數值違反欄位或資料表的完整性條件約束 」 錯誤

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

按一下這裡查看此文章的英文版本:2585082
徵狀
請考慮下列案例:
  • 您執行 32 位元作業系統的電腦上安裝 Microsoft SQL Server Compact 3.5。
  • 您可以建立 「 訂閱者 」 中 SQL Server Compact 3.5。
  • 您下載多個資料列從合併式發行集資料庫時 「 發行者 」 與 「 訂閱者 」 進行同步處理。資料列包含許多文件和條件約束。
在這個案例中,SQL Server 錯誤記錄檔會記錄類似下列的錯誤訊息:
System.Data.SqlServerCe.SqlCeException
原生錯誤 = 0,HRESULT =-2147217873,錯誤訊息: 指定的值違反資料行或資料表的完整性條件約束。
發生的原因
無效的 exchange ID 的使用,就會發生這個問題。

SQL 壓縮用戶端代理程式處於擱置狀態執行 32 位元作業系統的電腦上下載的多個資料列時,呼叫的重試方法,會使用不正確的 exchange id。因此,就會發生 「 徵狀 〉 一節所描述的問題。
解決方案
累積更新套件 5 所包含可解決這個問題的 hotfix 的 SQL Server Compact 3.5 Service Pack 2 (SP2)。

如需有關如何取得累積更新套件 5 SQL Server Compact 3.5 sp2 的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
2553608 為 SQL Server 的累積更新 5 Compact 3.5 服務套件 2

其他可行方案
若要解決這個問題,請指定發行項的處理順序是合併發行項中的資料列的循序順序。資料庫管理員可以使用以嘗試錯誤的方法來尋找資料列中的合併發行項的循序順序。

備忘稿
  • 如果文件會下載按照順序,就是合併發行項中的資料列的循序順序,較少資料列加入重試佇列。
  • [@ processing_order =] processing_order 引數會決定文件會下載在合併式發行集的順序。[ Processing_order 參數是整數資料型別。如果 0 預設值 Processing_order 使用參數,未排序的相關文件。當 Processing_order 參數不是 0則此值表示相關的文件是序數值。時,處理發行項,序數的值遞增順序來處理它們。如果發行項有相同的值,這些文件的處理順序由字母順序排列的儲存在文件暱稱 sysmergearticles 系統資料表。
  • 如需詳細資訊 processing_order 參數,請造訪下列 MSDN 網站:
  • 如需有關合併發行項的處理順序的詳細資訊,請造訪下列 MSDN 網站:

警告:本文為自動翻譯

內容

文章識別碼:2585082 - 最後檢閱時間:08/12/2011 10:41:00 - 修訂: 1.0

Microsoft SQL Server Compact 3.5

  • kbqfe kbexpertiseadvanced kbfix kbsurveynew kbmt KB2585082 KbMtzh
意見反應
');m.name='ms.dqp0';m.content='true';document.getElementsByTagName('head')[0].appendChild(m);" onload="var m=document.createElement('meta');m.name='ms.dqp0';m.content='false';document.getElementsByTagName('head')[0].appendChild(m);" src="http://c1.microsoft.com/c.gif?">