KB4009823 - ÅTGÄRDAT: EFTER BORTTAGNING sker utlösare i fel ordning i åtgärdskedjan VID BORTTAGNING av kaskad i SQL Server 2014 eller 2016

Gäller för
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)

Symptom

Tänk dig följande scenario:

  • I SQL Server 2014 eller 2016 har du flera tabeller som var och en har en angiven PRIMARY KEY-begränsning.
  • Du skapar en sammanhängande kedja för dessa tabeller genom att använda begränsningen SEKUNDÄRNYCKEL tillsammans med åtgärden VID BORTTAGNING AV KASKAD.
  • Du skapar en AFTER DELETE-utlösare för varje tabell.
  • Du tar bort en rad från den överordnade tabellen. Detta utlöser AFTER DELETE-utlösarna och ON DELETE CASCADE-åtgärdskedjan.

I det här scenariot kan utlösarna inträffa i fel ordning.

Lösning

Det här problemet åtgärdas i följande kumulativa uppdateringar för SQL Server:

Kumulativ uppdatering 5 för SQL Server 2016 RTM

Kumulativ uppdatering 2 för SQL Server 2016 SP1

Kumulativ uppdatering 5 för SQL Server 2014 SP2

Kumulativ uppdatering 11 för SQL Server 2014 Service Pack 1

Om kumulativa uppdateringar för SQL Server

Varje ny kumulativ uppdatering för SQL Server innehåller alla snabbkorrigeringar och säkerhetskorrigeringar som ingick i den tidigare kumulativa uppdateringen. Kolla in de senaste kumulativa uppdateringarna för SQL Server:

Senaste kumulativa uppdateringen för SQL Server 2016

Senaste kumulativa uppdateringar för SQL Server 2014

StatusMicrosoft har bekräftat att detta är ett problem i de Microsoft-produkter som anges i avsnittet "Gäller".

Referenser

Sammanhängande begränsningar för referensintegritet

Läs mer om den terminologi som Microsoft använder för att beskriva programuppdateringar.