Sie haben hier zwei echte Möglichkeiten: Sie können Einschränkungen für die Tabelle deaktivieren. Dies ist normalerweise keine gute Idee, da Sie möglicherweise einen schlechten Datenzustand haben, wenn Sie mit Daten herumspielen, die sich auf andere Tabellen beziehen, aber nicht den vollen Umfang Ihres Schemas kennen und es möglicherweise Ihren Zwecken entspricht:
ALTER TABLE [workdemo.no].[dbo].[M06Persons] NOCHECK CONSTRAINT [FK_M02ArticlePersons_M06Persons]
Denken Sie daran, die Einschränkung nach dem Löschen mit wieder zu aktivieren
ALTER TABLE [workdemo.no].[dbo].[M06Persons] WITH CHECK CHECK CONSTRAINT [FK_M02ArticlePersons_M06Persons]
Die zweite Möglichkeit wäre, die Einschränkung mit der Option ON DELETE CASCADE zu löschen und erneut hinzuzufügen, indem Sie Folgendes verwenden:
ALTER TABLE [workdemo.no].[dbo].[M06Persons] DROP CONSTRAINT [FK_M02ArticlePersons_M06Persons]
ALTER TABLE [workdemo.no].[dbo].[M06Persons] WITH NOCHECK ADD CONSTRAINT [FK_M02ArticlePersons_M06Persons] FOREIGN KEY(M06PersonId)
REFERENCES <parent table here> (<parent column here>)
ON DELETE CASCADE
Basierend auf Ihrem FK-Namen sieht es so aus, als ob Ihre übergeordnete Tabelle M02ArticlePersons und die übergeordnete Spalte M06Persons ist.
Wenn Sie dieses Schema nicht erstellt haben, versuchen Sie bitte zu überlegen, warum die Einschränkungen vorhanden sein können, und verstehen Sie, dass eine Verletzung auf diese Weise unbeabsichtigte Nebenwirkungen haben kann.
Es gibt noch eine andere manuelle Option:
Sie können zur untergeordneten Tabelle gehen und die untergeordneten Zeilen löschen, auf die der übergeordnete Schlüssel verweist. Dann können Sie die übergeordnete Zeile löschen. Dies ist im Wesentlichen das, was das Löschen von Kaskaden bewirkt. Auf diese Weise müssen Sie Ihre Einschränkungen nicht löschen / neu erstellen / ändern.
quelle
Dieser kleine Code hilft bei jeder Tabelle, aus der Sie Datensätze löschen möchten. Es kümmert sich auch um die referenzielle Integrität ...
Der folgende Code generiert DELETE-Anweisungen. Geben Sie einfach den schema.table_Name an
quelle