Berlaku Untuk
SQL Server 2017 Developer Windows SQL Server 2017 Enterprise Windows SQL Server 2017 Enterprise Core Windows SQL Server 2017 Standard Windows

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.

Perlu bantuan lainnya?

Ingin opsi lainnya?

Jelajahi manfaat langganan, telusuri kursus pelatihan, pelajari cara mengamankan perangkat Anda, dan banyak lagi.