使用 Microsoft 登入
登入或建立帳戶。
您好:
選取其他帳戶。
您有多個帳戶
選擇您要用來登入的帳戶。

徵狀

假設您在 Microsoft SQL Server 2014 中有一個具有聚集列存儲索引的資料表。 您可以針對資料表執行 DDL 查詢,以變更現有資料行的資料類型。 例如,您可以執行下列命令,將 Column_1 Table_1 的資料類型從 VARCHAR (499)更新為 NVARCHAR (500):

ALTER TABLE Table_1 ALTER COLUMN Column_1 NVARCHAR(500) NOT NULL

在這種情況下,會發生多重宣告失敗,而且您會收到下列錯誤訊息:

位置 <: > \xmcolenc.inl :413Expression: PF_CURRENT_STATUS = = PFS_OK (在 XMColumnEncoder<未簽署的 char *>:: EncodeValueForSecondary) SPID: <SPID>程式識別碼: <程式 識別碼 >說明: hr:0X0Location: <檔案 路徑> \xmerror.cpp:43Expression:0(在 PFSetLastError) SPID: <程式識別碼>說明: hr:0x0

此外,系統會在 SQL Server 錯誤記錄資料夾中產生多個記憶體傾印檔案,並在 SQL Server 錯誤記錄中記錄多個類似下列的錯誤訊息:

<日期時間> Spid<ID> * * * 堆疊轉儲會傳送至 <磁片名稱>: \Program Files\Microsoft SQL Server\MSSQL12。SQL2014\MSSQL\LOG\SQLDump0002.txt<日期時間> Spid<ID> * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * <日期時間> spid<ID > * <日期時間> spid<識別碼> * 開始堆疊轉儲: <的日期時間> spid <識別碼> * <日期時間> spid <Id>< * 私人伺服器組建> Spid<Id > 。 <日期時間> Spid<ID > * <日期時間> spid<ID > * 位置: <檔路徑> \xmcolenc.inl: 413<日期時間> spid<ID > * 運算式: PF_CURRENT_STATUS = = PFS_OK<日期時間> spid<> * (在 XMColumnEncoder<無符號字元集 *> :: EncodeValueForSecondary) <> 的日期時間<spid> id Date Time<* 60: 3680<日期時間> Spid<Id> * 描述: hr: 0X0<的日期時間> Spid <識別碼> * <日期時間> spid<識別碼> * 輸入緩衝區136位元組-<日期時間> spid<識別碼> * ALTER TABLE Table_1 變更欄 COL1 NVARCHAR (500) NOT Null;

解決方案

在您套用此熱修復程式後,當 DDL 查詢失敗時,您可能會收到下列新的錯誤訊息:

ALTER TABLE 語句失敗,因為次要字典已達到最大大小限制。 考慮刪除資料列索引、變更資料行,然後建立新的資料列索引

此修正程式也可防止在 SQL Server 錯誤記錄中產生記憶體傾印檔案。此問題首先是在 SQL Server 的下列累積更新中修正:

每個新的 SQL Server 累計更新都包含所有的修正程式,以及前一個累積更新中所包含的所有安全性修正程式。 我們建議您下載並安裝最新的 SQL Server 累積更新:

狀態

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

需要更多協助嗎?

想要其他選項嗎?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。

這項資訊有幫助嗎?

您對語言品質的滿意度如何?
以下何者是您會在意的事項?
按下 [提交] 後,您的意見反應將用來改善 Microsoft 產品與服務。 您的 IT 管理員將能夠收集這些資料。 隱私權聲明。

感謝您的意見反應!

×