Deaktivieren Sie die foreign key-Einschränkung auf alle Tabellen, die nicht funktioniert hat
Ich versuche eine Menge von Befehlen zu deaktivieren Tabellen-Einschränkungen in meiner Datenbank zu machen, truncate, um alle Tabellen haben, aber noch jetzt ist es mir den gleichen Fehler:
Nicht truncate table ", weil darauf verwiesen wird, die durch eine FOREIGN KEY-Einschränkung.
Ich versuche
EXEC sp_msforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT all"
EXEC sp_MSforeachtable "TRUNCATE TABLE ?"
Und ich habe versucht, diese für jede Tabelle
ALTER TABLE [Table Name] NOCHECK CONSTRAINT ALL
truncate table [Table Name]
ALTER TABLE [Table Name] CHECK CONSTRAINT ALL
und jedes mal habe ich die vorherigen Fehlermeldung. Wie kann ich dieses problem lösen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie möchten, abschneiden der Tabelle, Sie wahrscheinlich haben, um die drop foreign-keys, und fügen Sie Sie zurück. Von hier.
"Sie können nicht verwenden Sie TRUNCATE TABLE auf eine Tabelle verweist, die durch eine FOREIGN KEY-Einschränkung; verwenden Sie stattdessen DELETE-Anweisung ohne WHERE-Klausel. Da TRUNCATE TABLE nicht angemeldet ist, es kann keinen trigger aktivieren."
Ähnliche Frage hier SO.
Ich denke, dass ist eine eher schlechte Idee. Es ist keine gute Idee, blind zu laufen, die Art der SQL-Befehle für ALLE Tabellen in Ihrer Datenbank.
Was genau wollen Sie tun?
Wenn Sie möchten, erstellen Sie eine Kopie Ihrer Datenbank (zum Beispiel) mit den gleichen Tabellen, die keine Daten in Ihnen, die Sie tun können, dass mit SSIS-Paket sehr leicht (nur stellen Sie sicher, dass die KOPIE der DATEN) option auf False festgelegt ist
http://www.kodyaz.com/articles/transfer-sql-server-objects-task.aspx