Problembeschreibung
Angenommen Sie, Sie versuchen, Daten aus einer Tabelle löschen und die Daten in anderen Tabellen in Microsoft SQL Server 2016 und 2017 verwiesen werden. ichuntersuchen Sie Abfrage f Ausführungsplan, Sie sehen Foreign Key Verweis überprüfen Operator verwenden .In diesem Fall erhalten Sie eine Fehlermeldung , wenn die Zeile, Gelöschte nicht in anderen Tabellen verwiesen:
Msg 547, Ebene 16, Status 0, Zeile Zeilennummer
Die DELETE-Anweisung mit Verweis Einschränkung in Konflikt
Status
Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.
Fehlerbehebung
Dieses Problem wird im folgenden kumulative Update für SQL Server behoben:
Hinweis Dieses Problem ist im kumulativen Update 6 für SQL Server 2016 SP2 behoben.
Kumulative Updates für SQL Server:
Jedes neue kumulative Update für SQL Server enthält alle Hotfixes und alle Sicherheits-Updates, die im vorherigen kumulativen Update enthalten waren. Sehen Sie sich die neuesten kumulativen Updates für SQL Server an:
Problemumgehung
Wenden Sie eine der folgenden Methoden an, um dieses Problem zu umgehen:
-
Verwenden Sie zum Ausführen dieser Abfrage Kompatibilitätsgrad unter 130.
-
Ändern Sie Struktur der referenzierenden Tabelle.
Weitere Informationen
Beim Starten von Datenbank begrenzt Kompatibilitätsgrad Konfiguration 130 SQL Server 2016 ein Abfrageausführungsplan Foreign Key Verweis können Überprüfen Sie überprüft in andere Zeilen, eine Zeile in einer Tabelle verweist Tabellen mit Integritätsregeln zur referenziellen Integrität. Operator kann Wenn verwendet werden eine Tabelle wird durch eine große Anzahl von ausländischen Tabellen verwiesen. Dieser Operator SQL Server wählt einen Index in jeder verweisenden Tabelle diese Prüfung durchzuführen. If verweisende Tabelle besitzt einen Index mit mehreren Spalten, so einige Spalten am Anfang sind nicht Teil der Fremdschlüssel jedoch andere Spalten sind Teil des Fremdschlüssels. Dies kann falsche Prüfung führen, die ausgeführt werden durch SQL Server.
Betrachten Sie beispielsweise das folgende Schema:
Tabelle Tpk (Pk Int Einschränkung erstellen Cpk-Primärschlüssel in einem Cluster)
Erstellen Sie Tabelle Tfk (Int, Int fk Einschränkung Cfk Fremdschlüssel referenziert Tpk Index ia clustered(a,fk))
Diese Schemas möglicherweise dieses Problem jedoch, wenn Sie ändern Reihenfolge der Spalten im index ia (Fk, ein), wird es nicht.
Informationsquellen
Erfahren Sie mehr über die Terminologie, Microsoft-Softwareupdates verwendet.