Simptomi

Pretpostavimo da pokušate izbrisati podatke iz tablice, a koji se spominje u drugim tablicama u Microsoft SQL Server 2016 i 2017. If Istraži upita Izvršni plan, možete ga vidjeti koristite operator stranoj referenca ključ provjerite .U tom slučaju možete primiti sljedeću poruku o pogrešci čak i ako se redak izbrisan je referenciran u drugim tablicama:

Poruka 547, 16 razinu, stanje 0, redak LineNumber

Naredba DELETE u sukobu je sa ograničenje REFERENCE

Status

Microsoft je potvrdio da se taj problem pojavljuje u Microsoftovim proizvodima navedenima u odjeljku "Odnosi se na".

Rješenje

Problem je riješen u sljedećim kumulativnim ažuriranjem za SQL Server:

Napomena Problem je riješen u kumulativnu 6 Update za SQL Server 2016 SP2.

O kumulativna ažuriranja za SQL Server:

Svaki novi kumulativnim ažuriranjem za SQL Server sadrži sve hitnih popravaka i sve sigurnost rješava koji su obuhvaćeni s prethodnim kumulativnim ažuriranjem. Odjava najnovija kumulativna ažuriranja za SQL Server:

Zaobilazno rješenje

Problem se zaobilazno može riješiti na sljedeće načine:

  • Koristite razinu kompatibilnosti ispod 130 za izvođenje ovog upita.

  • Promijeniti strukturu indeks na referentni tablice.

Dodatne informacije

Početni baze podataka u dosegu razinu kompatibilnosti konfiguracije 130 u SQL Server 2016 plana izvršavanja upita možete koristiti Reference vanjski ključ Provjerite operator provjeriti ako redak u tablici referencira sve retke u drugi Tablica kroz ograničenja referencijalni integritet. Takve operator se može koristiti ako velik broj stranih tablicama se referiraju tablice. U ovaj operator SQL Server odluči indeks u svakoj tablici referentni za izvršavanje takvih potvrdite. Ako Referentni tablica ima indeks s više stupaca ključa takve neke Stupci na početku nisu dio vanjski ključ, ali neki drugi Stupci su dio vanjski ključ. To može rezultirati neispravna potvrdni se provodi SQL poslužitelj.

Na primjer, razmotrite Sljedeća shema:

Stvaranje tablice tpk (pk int ograničenja Klasterirani cpk primarni ključ)

Stvaranje tablice tfk (int, fk int ograničenja vanjskog ključa reference tpk cfk, clustered(a,fk)) ia indeksa

Taj problem, ali ako promijenite može rezultirati takva shema Redoslijed stupaca u indeks ia za (fk, u), će nije.

Reference

Naučite u  terminologijaMicrosoft koristi za opisivanje softverskih ažuriranja.

Potrebna vam je dodatna pomoć?

Proširite svoje vještine
Istražite osposobljavanje
Prvi koristite nove značajke
Pridružite se Microsoft Insidere

Jesu li vam ove informacije bile korisne?

Koliko ste zadovoljni jezičnom kvalitetom?
Što je utjecalo na vaše iskustvo?

Hvala vam na povratnim informacijama!

×