MSSQLSERVER_3961
適用於:SQL Server
詳細資料
屬性 | 值 |
---|---|
產品名稱 | SQL Server |
事件識別碼 | 3961 |
事件來源 | MSSQLSERVER |
元件 | SQLEngine |
符號名稱 | XACT_METADATA_INVALID |
訊息文字 | 資料庫 '%.*ls' 中的快照集隔離交易失敗,因為這個交易啟動之後,另一個並行交易的 DDL 陳述式修改了此陳述式存取的物件。 因為中繼資料並未建立版本,因此不允許此情況發生。 如果與快照集隔離混合,中繼資料的並行更新可能會導致不一致的問題。 |
說明
如果您要查詢快照隔離下的中繼資料,而且有並行 DDL 陳述式會更新在快照隔離下受到存取的中繼資料,就會發生此錯誤。 SQL Server 不支援中繼資料的版本控制。 基於這個理由,可在快照隔離下執行的明確交易之中執行的 DDL 作業會受到限制。 根據定義,隱含交易是單一陳述式,即便使用 DDL 陳述式,也能強制執行快照集隔離的語意。 在 BEGIN TRANSACTION 陳述式之後,不允許在快照隔離下執行下列 DDL 陳述式:ALTER TABLE、CREATE INDEX、CREATE XML INDEX、ALTER INDEX、DROP INDEX、DBCC REINDEX、ALTER PARTITION FUNCTION、ALTER PARTITION SCHEME 或是任何通用語言執行平台 (CLR) DDL 陳述式。 在隱含交易內使用快照集隔離時,這些陳述式會受到允許。 根據定義,隱含交易是單一陳述式,即便使用 DDL 陳述式,也能強制執行快照集隔離的語意。
使用者動作
將快照集隔離等級變更為非快照集隔離等級,例如查詢元數據之前認可的讀取。