2010-08-27 9 views
9

Ich habe ein paar große Datensätze (~ O (1TB)), die ich in meine Datenbank importieren möchte. Ich verwende BULK INSERT, um Daten in temporäre Tabellen zu importieren, dann benutze SELECT und INSERT INTO, um meine realen Tabellen mit den Daten zu füllen. Dies liegt daran, dass ich die Reihenfolge einiger Dinge ändern und einige Datendateien in logische Tabellen aufteilen möchte. Und wenn diese Funktionalität nicht benötigt wird, ich gerade BULK INSERT direkt in meine Zieltabelle.FK Constraints nach BULK INSERT prüfen

Ich möchte überprüfen, ob alle Fremdschlüssel Einschränkungen durchgesetzt wurden. Wenn ich während der Importphase BULK INSERT bis CHECK_CONSTRAINTS kennzeichnen, verlangsamt sich der Importprozess zu einem Crawl.

Gibt es einen Befehl, dies nach der Tat zu tun? Ich habe sehr begrenzt Vertrautheit mit SQL Server und Datenbanken im Allgemeinen.

Vielen Dank im Voraus.

EDIT:

nachlesen: MSDN Article

Antwort

5

eine Tabelle zu prüfen:

alter table YourTable with check check constraint all 

alle Tabellen zu prüfen:

exec sp_msforeachtable 'alter table ? with check check constraint all' 
+0

Hm, habe ich versucht 'alter Tabelle MyTable mit check check constraint alle' und bekam eine ... "Befehl (e) erfolgreich abgeschlossen." wäre es sonst gescheitert? – Gleno

+0

Ja. Sie würden einen Fehler wie "ALTER TABLE-Anweisung im Konflikt mit COLUMN FOREIGN KEY-Einschränkung ..." erhalten, wenn es einen Verstoß gab. –

+0

Okay, dann vielen Dank für Ihre Hilfe. – Gleno

1

Tibor Karaszi einen großen Artikel über vertrauenswürdige Einschränkungen schrieb: Non-trusted constraints

+1

eine gefunden "DBCC CHECKCONSTRAINTS()" Hinweis in diesem Beitrag, geht es auszuprobieren. :) – Gleno

2

Wie viele Tabellen/Fremdschlüssel an Sie suchen? Haben Sie darüber nachgedacht, eine schnelle benutzerdefinierte Abfrage zu schreiben, die nach verwaisten Zeilen sucht?

+0

Genau das mache ich gerade. Es gibt ungefähr 10 Tabellen, von denen einige sich gegenseitig referenzieren. Ich dachte, dass es eine Möglichkeit geben könnte, Zeit zu sparen. :) – Gleno

+0

Ich mag diese Antwort +1, müssen Sie wissen, wo die FK ist nicht gültig – MikeAinOz

Verwandte Themen