Applies ToSQL Server 2017 Developer Windows SQL Server 2017 Enterprise Windows SQL Server 2017 Enterprise Core Windows SQL Server 2017 Standard Windows

Příznaky

Předpokládejme, že pokusíte odstranit data z tabulky a data se odkazuje v jiných tabulkách v Microsoft SQL Server 2016 a 2017. If prozkoumat dotaz plán vykonání, uvidíte jej použít operátor cizího klíče referenční kontrola .V takovém případě můžete obdržet následující chybovou zprávu i když je řádek odstranění není odkazováno v jiných tabulkách:

Zpráva 547, úroveň 16, stát 0, řádek LineNumber

Příkaz DELETE konfliktu s omezením odkaz

Stav

Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části Informace v tomto článku jsou určeny pro produkt.

Řešení

Tento problém je vyřešen v následující kumulativní aktualizaci pro SQL Server:

Poznámka: Tento problém je opraven v kumulativní aktualizaci 6 pro SQL Server 2016 SP2.

O kumulativní aktualizace pro SQL Server:

Každé nové kumulativní aktualizace pro SQL Server obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozí kumulativní aktualizace. Rezervovat nejnovější kumulativní aktualizace pro SQL Server:

Alternativní řešení

Jako alternativní řešení použijte jednu z následujících metod:

  • Chcete-li spustit tento dotaz použijte úroveň kompatibility pod 130.

  • Změnit index struktury v odkazující tabulce.

Další informace

Úroveň kompatibility konfigurace oboru počáteční databáze 130 v SQL serveru 2016 plán spuštění dotazu pomocí cizího klíče referenční Operátor kontroly ověřit, pokud je řádek v tabulce odkazuje všech řádků v jiných tabulky pomocí omezení referenční integrity. Pokud lze použít takové operátor velký počet tabulek odkazuje tabulku. Tento operátor in SQL Server zvolí indexu v každé odkazující tabulce provádět takové kontroly. Pokud Referenční tabulka má index s více sloupců klíče, takové některé na začátku sloupce nejsou součástí cizí klíč, ale některé jiné sloupce jsou součástí cizího klíče. To může mít za následek nesprávnou kontrolní, která se provádí pomocí serveru SQL Server.

Zvažte například následující schéma:

vytvořit tabulku tpk (omezení int pk cpk primární klíč clusteru)

Vytvořte tabulku tfk (int, fk int omezení cfk odkazy na cizí klíč tpk, index ia clustered(a,fk))

Toto schéma může způsobit tento problém, ale pokud změníte pořadí sloupců v indexu ia (fk,), nikoliv.

Odkazy

Seznamte se  terminologii, že společnost Microsoft používá k popisu aktualizací softwaru.

Potřebujete další pomoc?

Chcete další možnosti?

Prozkoumejte výhody předplatného, projděte si školicí kurzy, zjistěte, jak zabezpečit své zařízení a mnohem více.