KB2518808-修正:當您在 SQL Server 2008 R2 的事務發佈中發佈的資料表中新增資料行時,出現「運算式:(pCopySrc-command) <= (int) cmdLength」錯誤。

Microsoft 將 Microsoft SQL Server 2008 R2 發佈為一個可下載的檔案。 因為修正程式是累加的,所以每個新發行版本本都包含舊版 SQL Server 2008 R2 修正程式版本中所包含的所有修復程式及所有安全性修正程式。

徵狀

請試想下列案例:

  • 您在 SQL Server 2008 R2 中建立事務性發佈。

  • 您可以在出版物中新增表格做為文章。

  • 您會初始化事務性發佈,並產生初始快照。

  • 您嘗試執行查詢,以將新資料行新增至資料表。例如,您嘗試執行下列查詢,以將 <的欄名稱> 欄新增至<的 資料表名稱> 資料表:

    Alter table <table name> add <column name> int null

在這種情況下,查詢不會執行,而且您會收到類似以下的錯誤訊息:

位置: replschema:1305Expression:(pCopySrc-command) <= (int) cmdLengthSPID: <Spid>進程識別碼: <進程識別碼>

Msg 4902、Level 16、State 1、Line 2Cannot 找出 <資料表名稱> 的物件,因為它不存在或您沒有許可權。發生這個問題時,會在 SQL Server 錯誤記錄檔中記錄下列錯誤訊息。

或者,您可能會遇到下列稍有不同的錯誤:

Msg 3624,等級20,狀態1,程式 sp_replflush,Line 1A 系統斷言檢查失敗。 如需詳細資訊,請參閱 SQL Server 錯誤記錄。 通常,宣告失敗是由軟體錯誤或資料損毀所導致。 若要檢查資料庫是否損毀,請考慮執行 DBCC CHECKDB。 如果您同意在安裝期間將轉儲傳送至 Microsoft,則會將迷你轉儲傳送至 Microsoft。 您可以從 Microsoft 最新 Service Pack 中的 Microsoft 取得更新,或從技術支援取得 QFE。

此外,錯誤記錄中還會記錄下列專案:

2011-03-25 08:56: 14.71 spid55 錯誤:17066、嚴重性:、狀態: 1.2011-25 08:56: 14.71 spid55 SQL Server Assertion: File: <replschema .cpp>,line = 1305 失敗的 Assertion = ' (pCopySrc-command) <= (int) cmdLength」。 此錯誤可能是與時間有關的。 如果在重新執行語句後發生錯誤,請使用 DBCC CHECKDB 來檢查資料庫的結構完整性,或重新開機伺服器,以確保記憶體中的資料結構未損毀。 2011-03-25 08:14.92: spid55 錯誤:3624、嚴重性:20、State: 1.2011-03-25 08:56: 14.92 spid55 系統斷言檢查已失敗。 如需詳細資訊,請參閱 SQL Server 錯誤記錄。 通常,宣告失敗是由軟體錯誤或資料損毀所導致。 若要檢查資料庫是否損毀,請考慮執行 DBCC CHECKDB。 如果您同意在安裝期間將轉儲傳送至 Microsoft,則會將迷你轉儲傳送至 Microsoft。 您可以從 Microsoft 最新 Service Pack 中的 Microsoft 取得更新,或從技術支援取得 QFE。

解決方案

累積更新資訊

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注意: 因為組建是累加的,所以每個新的修正程式版本都包含先前 SQL Server 2008 R2 修正版本中所包含的所有修復程式及所有安全性修正程式。 我們建議您考慮套用包含此熱修復程式的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

2567616 在發行 SQL Server 2008 R2 Service Pack 1 之後發行的 SQL Server 2008 R2 組建 SQL Server 2008 R2 此問題的修正程式是在累積更新7中第一次發行。如需有關如何取得 SQL Server 2008 R2 累積更新套件的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:

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

981356 在發行 SQL Server 2008 R2 之後發行的 SQL Server 2008 R2 組建

因應措施

若要解決此問題,請修改表格名稱以包含少於8個字元。

狀態

Microsoft 已確認本篇文章<適用於>一節所列之 Microsoft 產品確實有上述問題。

需要更多協助?

擴展您的技能
探索訓練
優先取得新功能
加入 Microsoft 測試人員

這項資訊有幫助嗎?

感謝您的意見反應!

感謝您的意見反應! 我們將協助您與我們的其中一個 Office 支援專員連絡以深入了解您的意見。

×