Sümptomid

Oletame, et andmete kustutamisel tabelist ja andmed viitab ülejäänud tabelites Microsoft SQL Server 2016 ja 2017. masaate uurida päringu f käivitamisplaan, näete seda kasutada keelevigadele võtme viide Check kasutaja .Sellisel juhul võidakse kuvada järgmine tõrketeade isegi siis, kui rida on kustutatud on viidatud muudes tabelites:

MSG 547, tase 16 riigi 0, rida LineNumber

Kustuta väide on vastuolus viide piirangu

Olek

Microsoft on kinnitanud, et see probleem esineb jaotises "Kehtib järgmiste toodete kohta" loetletud Microsofti toodetel.

Lahendus

See probleem on lahendatud SQL serveri järgmise koondvärskenduse:

Märkus. See probleem on lahendatud kumulatiivne Update 6 SQL Server 2016 SP2.

Teave SQL serveri kumulatiivseid värskendusi:

Iga uue SQL serveri koondvärskendus sisaldab kõiki Kiirparandusi ja kõiki turbeparandusi, mis sisaldusid eelmises koondvärskenduses. Vaadake SQL serveri kumulatiivseid värskendusi:

Lahendus

Probleemi lahendamiseks kasutage ühte järgmistest meetoditest.

  • Ühilduvuse taseme alla 130 abil saate käivitada selle päringu.

  • Muutke register täiendab seda ja lisab tabeli struktuuri.

Lisateave

Käivitamine andmebaasi hõlmavaid konfiguratsiooni ühilduvuse taseme SQL Serveri 2016 130, saate päringu käivitamisplaan keelevigadele võtme viide Kontrollige operaatori kontrollida, kui rida tabelis viitab mis tahes muude ridade tabelid viitamisterviklus piirangute kaudu. Selline haldur saab kasutada, kui tabelis viitab suur hulk keelevigadele tabelid. See kasutaja on SQL Server valib indeks iga täiendab seda ja lisab tabeli tegemiseks sellist sisse. Kui täiendab seda ja lisab tabelis on registri võtme mitu veergu, näiteks mõned veergude alguses ei kuulu Võõrvõti, kuid mõne muu veerus on võõrvõti. Selle tulemuseks võib olla vale sisse, mis toimub SQL Server.

Kujutame ette näiteks järgmist skeemi:

Loo tabel tpk (pk int piirang KFK primaarvõti rühmitatud)

Loo tabel tfk (int, fk int piirangu cfk keelevigadele viited tpk, register ia clustered(a,fk))

Sellise skeemi tulemuseks võib olla probleem, kuid kui muudate tellimuse veerud indekseerida ia (fk, a), ei tee.

Viited

Teave on  terminoloogiaet kasutab Microsofti tarkvaravärskenduste kirjeldamiseks.

Kas vajate veel abi?

Kas soovite rohkem valikuvariante?

Siin saate tutvuda tellimusega kaasnevate eelistega, sirvida koolituskursusi, õppida seadet kaitsma ja teha veel palju muud.

Kogukonnad aitavad teil küsimusi esitada ja neile vastuseid saada, anda tagasisidet ja saada nõu rikkalike teadmistega asjatundjatelt.