Gejala
Anda menjalankan kueri SQL yang berisi pernyataan if Exists di Microsoft SQL Server 2012. Jika pernyataan if Exists berisi fungsi manajemen dinamis sys.dm_db_index_physical_stats, Anda menerima pelanggaran akses yang menyerupai yang berikut ini:
tanggal SPID # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *tanggalwaktu SPID # *tanggalwaktu SPID # * mulai stack dump:tanggalwaktu SPID # * tanggal waktu SPID #tanggalwaktu SPID # *tanggalwaktu SPID # *tanggalwaktu SPID # * pengecualian alamat = 000007ff7da5614b Module (sqlmin + 000000000000614b)waktutanggalSPID # * pengecualian kode = c0000005 EXCEPTION_ACCESS_VIOLATIONtanggalwaktu SPID # * pelanggaran akses terjadi membaca alamat 0000000800000f04tanggalwaktu SPID # * input buffer 510 byte-tanggalwaktu SPID # * SQL_query_codetanggalwaktu SPID # * end
Catatan
-
Jika Anda menjalankan perintah DBCC CHECKDB terhadap database tersebut setelah pelanggaran akses terjadi, tidak ada kesalahan yang dilaporkan.
-
Pelanggaran akses tidak terjadi saat Anda pertama kali menjalankan kueri SQL. Namun, pelanggaran akses terjadi setiap kali Anda menjalankan kueri SQL setelah itu.
-
Jika Anda mengaktifkan bendera pelacakan 3654, pelanggaran akses tidak terjadi. Namun, Anda menerima kesalahan berikut ini dalam jejak sebagai gantinya:
Lokasi: sosmemdbg. CPP: 2074Expression: FALSESPID: 55Process ID: 16972Description: MEMOBJ_INDEXANALYSIS--membebaskan memori terdeteksi. MSG 3624, tingkat 20, negara bagian 1, baris 5A pemeriksaan pernyataan sistem telah gagal. Periksa log kesalahan SQL Server untuk detailnya. Biasanya, kegagalan pernyataan disebabkan oleh bug perangkat lunak atau kerusakan data. Untuk memeriksa kerusakan database, pertimbangkan untuk menjalankan DBCC CHECKDB. Jika Anda setuju untuk mengirim timbunan ke Microsoft selama penyetelan, dump mini akan dikirim ke Microsoft. Pembaruan mungkin tersedia dari Microsoft dalam paket layanan terbaru atau di QFE dari dukungan teknis. MSG 0, tingkat 20, status 0, baris 0A kesalahan parah terjadi pada perintah saat ini. Hasilnya, jika ada, harus dibuang.
Pemecahan Masalah
Untuk mengatasi masalah ini, instal pembaruan kumulatif 7 untuk SQL Server 2012 SP1. Masalah ini pertama kali diperbaiki dalam pembaruan kumulatif ini.
Setiap pembaruan kumulatif baru untuk SQL Server berisi semua hotfix dan semua perbaikan keamanan yang disertakan dalam pembaruan kumulatif sebelumnya. Untuk informasi selengkapnya, lihat pembaruan kumulatif terbaru untuk SQL Server 2012 SP1.
Status
Microsoft telah mengonfirmasi bahwa ini adalah masalah pada produk Microsoft yang tercantum di bagian "Berlaku untuk".
Referensi
Lihat terminologi yang digunakan oleh Microsoft untuk menjelaskan pembaruan perangkat lunak.