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 產品確實有上述問題。