Gejala
Misalnya Anda mencoba untuk menghapus data dari tabel, dan data yang dirujuk dalam tabel lainnya di Microsoft SQL Server 2016 dan 2017. sayaf Anda menjelajahi kueri rencana eksekusi, Anda dapat melihat menggunakan operator Periksa referensi kunci asing .Dalam situasi ini, Anda mungkin menerima pesan galat berikut ini meskipun sedang baris dihapus tidak tercatat pada tabel lainnya:
MSG 547, tingkat 16, negara 0, baris LineNumber
Hapus pernyataan bertentangan dengan batasan referensi
Status
Microsoft telah mengonfirmasi bahwa ini adalah masalah pada produk Microsoft yang tercantum di bagian "Berlaku untuk".
Pemecahan Masalah
Masalah ini telah diperbaiki pada pembaruan kumulatif berikut ini untuk SQL Server:
Catatan Masalah ini telah diperbaiki pada pembaruan kumulatif 6 untuk SQL Server 2016 SP2.
Tentang pembaruan kumulatif untuk SQL Server:
Setiap pembaruan kumulatif yang baru untuk SQL Server berisi semua hotfix dan semua perbaikan keamanan yang disertakan dengan pembaruan kumulatif sebelumnya. Periksa pembaruan kumulatif terbaru untuk SQL Server:
Penyelesaian Masalah
Untuk mengatasi masalah ini, gunakan salah satu dari metode berikut ini:
-
Gunakan tingkat kompatibilitas di bawah 130 untuk menjalankan kueri ini.
-
Ubah struktur indeks pada Tabel referensi.
Informasi Selengkapnya
Memulai database scoped tingkat kompatibilitas konfigurasi 130 di SQL Server 2016, rencana eksekusi query dapat menggunakan referensi kunci asing Periksa operator untuk memverifikasi jika baris dalam tabel direkomendasikan oleh setiap baris lain Tabel melalui integritas referensial batasan. Operator tersebut dapat digunakan apabila Tabel direkomendasikan oleh sejumlah besar asing tabel. Operator ini SQL Server memilih indeks di setiap tabel referensi untuk melakukan pemeriksaan tersebut. Jika Tabel referensi memiliki indeks dengan beberapa kunci kolom, seperti beberapa kolom di awal bukan merupakan bagian dari kunci asing, namun beberapa lainnya kolom adalah bagian dari kunci asing. Hal ini dapat mengakibatkan centang salah yang dilakukan dengan SQL Server.
Sebagai contoh, pertimbangkan skema berikut ini:
membuat tabel tpk (pk int batasan kunci primer CPK gugus)
membuat tabel tfk (int, fk int batasan cfk referensi kunci asing tpk, indeks ia clustered(a,fk))
Skema tersebut dapat menyebabkan masalah ini, tetapi jika Anda mengubah urutan kolom dalam indeks ia untuk (fk,), tidak akan.
Referensi
Mempelajari tentang  terminologiyang digunakan untuk menjelaskan pemutakhiran perangkat lunak Microsoft.