MSSQLSERVER_3961

詳細資料

產品名稱

SQL Server

產品版本

10.50

產品組建編號

10.00.1050.6

事件識別碼

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 或是任何 Common Language Runtime (CLR) DDL 陳述式。當您在隱含交易內使用快照隔離時,便允許這些陳述式。就定義而言,隱含交易是一種單一陳述式,可強制使用快照隔離的語意 (即使是 DDL 陳述式)。

使用者動作

將快照隔離等級變更為非快照隔離等級,例如在查詢中繼資料之前認可的讀取。