Simptomi
Pieņemsim, mēģinot dzēst tabulas dati un dati ir atsauce citas tabulas Microsoft SQL Server 2016 un 2017. esf pārlūkojat vaicājums izpildes plāns, to var redzēt izmantot ārējā atslēga atsauces pārbaudīt operatora .Šādā gadījumā tiek parādīts šāds kļūdas ziņojums pat tad, ja rinda ir dzēst citās tabulās nav atsauces:
Ziņojums 547, līmenis 16 valsts līniju . rindas numurs % 0
IZDZĒSIET paziņojumu pretrunā ar atsauces ierobežojums
Statuss
Korporācija Microsoft ir apstiprinājusi, ka šī problēma pastāv Microsoft produktos, kas ir minēti sadaļā "Attiecas uz".
Risinājums
Šī problēma ir novērsta šo kumulatīvo atjauninājumu SQL Server:
Piezīme. Šī problēma ir novērsta kumulatīvo atjauninājumu 6 SQL Server 2016 SP2.
Par kumulatīvo atjauninājumu SQL Server:
Katra jaunā SQL Server kumulatīvais atjauninājums ietver visus labojumfailus un visus drošības labojumus, kas bija ietverti iepriekšējā kumulatīvajā atjauninājumā. Jaunākais kumulatīvo atjauninājumu skatiet SQL Server:
Risinājums
Lai šo problēmu atrisinātu, izmantojiet kādu no šīm metodēm:
-
Lai palaistu šo vaicājumu izmanto saderības līmeni zem 130.
-
Mainīt tabulas atsauces indeksu struktūru.
Papildinformācija
Datu bāzes sākuma ietverti konfigurācijas saderības līmenis 130 SQL Server 2016 vaicājuma izpilde plāns var izmantot atsauces ārējā atslēga Pārbaudiet, vai ja rindu tabulā ir norādes uz citiem rindas izvēles operators tabulas ar ierobežojumiem Attiecinošā integritāte. Operators var izmantot, ja liels skaits ārvalstu tabulas tabula ir atsauce. Ar šo operators SQL Server izvēlas indeksu katrā atsauces tabulā veikt šādu pārbaudi. Ja atsauces tabulai ir indekss ar vairākām atslēgas kolonnām šādu dažas kolonnas sākumā nav daļa no ārējā atslēga, bet citi kolonnas ir daļa no ārējā atslēga. Tas var izraisīt nepareizu pārbaudiet, vai tiek veikta SQL Server.
Piemēram, ņemiet vērā šādas shēmas:
izveidojiet tabulas tpk (int pk ierobežojums primārā atslēga KFK sagrupēti)
izveidojiet tabulas tfk (int, fk int ierobežojuma cfk ārējo atslēgu atsauces tpk, ia clustered(a,fk)) indekss
Šī problēma, bet, ja maināt var izraisīt šādas shēmas kolonnu secības indeksu ia (fk,), tas nav.
Atsauces
Uzzināt terminoloģiju, tiek izmantota Microsoft programmatūras atjauninājumu aprakstos.