MSSQLSERVER_3961
Berlaku untuk: SQL Server
Detail
Atribut | Nilai |
---|---|
Nama Produk | SQL Server |
ID Peristiwa | 3961 |
Sumber Kejadian | MSSQLSERVER |
Komponen | SQLEngine |
Nama Simbolis | XACT_METADATA_INVALID |
Teks Pesan | Transaksi isolasi rekam jepret gagal dalam database '%.*ls' karena objek yang diakses oleh pernyataan telah dimodifikasi oleh pernyataan DDL dalam transaksi bersamaan lain sejak awal transaksi ini. Hal ini dilarang karena metadata tidak dibuat versi. Pembaruan bersamaan ke metadata dapat menyebabkan ketidakkonsistenan jika dicampur dengan isolasi snapshot. |
Penjelasan
Kesalahan ini dapat terjadi jika Anda mengkueri metadata pada isolasi snapshot dan ada pernyataan DDL bersamaan yang memperbarui metadata yang sedang diakses pada isolasi snapshot. SQL Server tidak mendukung pembuatan versi metadata. Karena alasan ini, ada pembatasan tentang operasi DDL apa yang dapat dilakukan dalam transaksi eksplisit yang berjalan pada isolasi snapshot. Transaksi implisit, menurut definisi, adalah satu pernyataan yang memungkinkan untuk menegakkan semantik isolasi snapshot bahkan dengan pernyataan DDL. Pernyataan DDL berikut tidak diizinkan di bawah isolasi rekam jepret setelah pernyataan BEGIN TRANSACTION: ALTER TABLE, CREATE INDEX, CREATE XML INDEX, ALTER INDEX, DROP INDEX, DBCC REINDEX, ALTER PARTITION FUNCTION, ALTER PARTITION SCHEME, atau pernyataan DDL common language runtime (CLR). Pernyataan ini diizinkan ketika Anda menggunakan isolasi snapshot dalam transaksi implisit. Transaksi implisit, menurut definisi, adalah satu pernyataan yang memungkinkan untuk menegakkan semantik isolasi snapshot bahkan dengan pernyataan DDL.
Tindakan Pengguna
Ubah tingkat isolasi rekam jepret ke tingkat isolasi non-rekam jepret seperti baca yang diterapkan sebelum mengkueri metadata.