KB4009823 - PERBAIKAN: Setelah pemicu DELETE terjadi dalam urutan yang salah dalam rantai tindakan ON DELETE CASCADE di SQL Server 2014 atau 2016

Berlaku Untuk
SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2016 Service Pack 1 SQL Server 2014 Service Pack 2 - duplicate (do not use)

Gejala

Pertimbangkan skenario berikut:

  • Dalam SQL Server 2014 atau 2016, Anda memiliki beberapa tabel, yang masing-masing memiliki batasan KUNCI PRIMER yang ditentukan.
  • Anda membuat rantai bertingkat untuk tabel tersebut menggunakan batasan KUNCI ASING bersama-sama dengan tindakan ON DELETE CASCADE.
  • Anda membuat pemicu AFTER DELETE untuk setiap tabel.
  • Anda menghapus baris dari tabel induk. Ini memicu pemicu AFTER DELETE dan rantai tindakan ON DELETE CASCADE.

Dalam skenario ini, pemicu mungkin terjadi dalam urutan yang salah.

Resolusi

Masalah ini telah diperbaiki dalam pembaruan kumulatif berikut untuk SQL Server:

Pembaruan Kumulatif 5 untuk SQL Server RTM 2016

Pembaruan Kumulatif 2 untuk SQL Server 2016 SP1

Pembaruan Kumulatif 5 untuk SQL Server 2014 SP2

Pembaruan Kumulatif 11 untuk SQL Server 2014 Paket Layanan 1

Tentang pembaruan kumulatif untuk SQL Server

Setiap pembaruan kumulatif baru untuk SQL Server berisi semua perbaikan keamanan dan hotfix yang disertakan dalam pembaruan kumulatif sebelumnya. Lihat pembaruan kumulatif terbaru untuk SQL Server:

Pembaruan kumulatif terbaru untuk SQL Server 2016

Pembaruan kumulatif terbaru untuk SQL Server 2014

StatusMicrosoft telah mengonfirmasi bahwa ini adalah masalah dalam produk Microsoft yang tercantum di bagian "Berlaku untuk".

Referensi

Batasan Integritas Referensial Berjenjang

Pelajari tentang terminologi yang digunakan Microsoft untuk menjelaskan pembaruan perangkat lunak.