Kontrolowanie, ograniczenie sprawdzania przez operacji importu zbiorczego

Podczas zbiorczego importowania danych, można kontrolować, czy ograniczeń CHECK są wymuszane przez operację importu zbiorczego.A ograniczenie jest regułę biznesową na kolumna, aby zdefiniować jego prawidłowe wartości; na przykład, ograniczenia dla kolumna zawierające rozszerzenia telefonu może wymagać formularza #.Defining and checking constraints are the standard mechanism for enforcing data integrity.Microsoft recommends that normally you use constraint checking during an incremental bulk import.

Czasami można zignorować ograniczenia.Przykładowy scenariusz jest, jeśli dane wejściowe zawiera wiersze, które naruszają ograniczenia.Pomijając ograniczenia, można załadować danych, a następnie użyć Transact-SQL instrukcji oczyszczania danych.

Ostrzeżenie

Jeśli zignorujesz ograniczenia podczas operacji importu zbiorczego, dane naruszające istniejących ograniczeń można wstawić do tabela.Dlatego ograniczenia dla tabela jest oznaczony jako is_not_trusted w sys.check_constraints wykazu widoku (Aby uzyskać więcej informacji, zobacz sys.check_constraints (języka Transact-SQL)).W pewnym momencie należy sprawdź ograniczenia całej tabela.

Jeśli tabela została niepusty przed operacji import zbiorczy, revalidating ograniczenie kosztów może przekroczyć kosztów stosowania ograniczeń CHECK danych pierwotnych.Po zaimportowaniu danych powodujących problemy, należy użyć Transact-SQL do oczyszczenia importowanych danych.

Ważna informacjaWażne:

Wyłączenie ograniczenia schemat zmodyfikować blokada może być podjęte w celu aktualizacji metadane.Może to utrudniać innych poleceń (takich jak budowanie indeksu online) lub transakcji.Na przykład izolacji transakcji migawka dostęp do tabela miejsce docelowe może zakończyć się niepowodzeniem z powodu równoległych zmian DDL.

Więcej informacji na temat ograniczeń, zobacz Ograniczenia.

Podczas operacji importu zbiorczego sprawdzania ograniczenia zachowanie zależy od polecenia używane dla operacji.Domyślnie bcp poleceń i instrukcja WSTAWIENIA luzem ignorują ograniczenia.W przeciwieństwie do WSTAWIANIA...WYBIERZ * Z OPENROWSET(BULK...) instrukcja, domyślnie jest ograniczeń check.

W następującej tabela zestawiono domyślne zachowanie sprawdzanie ograniczenie polecenia import zbiorczy.

Polecenia

Zachowanie domyślne

BCP

Ignoruj ograniczenia

WSTAW LUZEM

Ignoruj ograniczenia

WSTAW...WYBIERZ * Z OPENROWSET(BULK...)

Sprawdź ograniczenia

Każdego polecenia import zbiorczy zawiera kwalifikator, który pozwala zmienić sposób obsługi ograniczenia, jak wyjaśniono w poniższych sekcjach.

Sprawdzanie ograniczenia bcp lub WSTAW luzem

Domyślnie, ograniczenia są ignorowane podczas operacji importu zbiorczego, wykonywaną przez bcp polecenia lub WSTAW luzem instrukcja.

Bcp poleceń i instrukcja WSTAWIENIA luzem umożliwiają określenie, że ograniczenia są wymuszane podczas operacji importu zbiorczego.Wymuszanie ograniczenia spowalnia operacji importu zbiorczego, ale zapewnia wszystkie wstawione dane nie narusza żadnych istniejących ograniczeń.W następującej tabela podsumowano kwalifikatory, można określić wymuszania ograniczeń podczas operacji importu zbiorczego.

Polecenia

Kwalifikator

Typ kwalifikatora.

BCP

-h"CHECK_CONSTRAINTS"

Wskazówka

WSTAW LUZEM

CHECK_CONSTRAINTS

Argument

Aby uzyskać więcej informacji, zobacz Narzędzie bcp i BULK INSERT (Transact-SQL).

Ignorowanie ograniczeń INSERT...WYBIERZ * Z OPENROWSET(BULK...)

Domyślnie WSTAW sprawdza ograniczenia CHECK, jednak INSERT...Wybierz * OPENROWSET(BULK...) Z instrukcja pozwala zastąpić sprawdzanie ograniczeń CHECK.Aby uzyskać informacje dotyczące tych ograniczeń, zobacz Ograniczenia CHECK.

Ostrzeżenie

Można wyłączyć ograniczenia CHECK.Nie można wyłączyć unikatowy, klucz podstawowy, klucz OBCY lub nie ograniczenia wartości NULL.

W następującej tabela zestawiono wskazówki tabela ignorowania ograniczeń CHECK.

Polecenia

Kwalifikator

Typ kwalifikatora.

WSTAW...WYBIERZ * Z OPENROWSET(BULK...)

Z (IGNORE_CONSTRAINTS)

Wskazówka tabeli

Poniższy przykład ilustruje sposób użycia tego kwalifikator.Więcej informacji o IGNORE_CONSTRAINTS wskazówki, zobacz Wskazówki tabel (Transact-SQL).

Weryfikowanie, że nie zaimportowano danych

Jeśli zignorujesz ograniczenia w operacji importu zbiorczego można zidentyfikować później zaimportowanej tabela wierszy, które naruszają ograniczenia sprawdzając ręcznie importowane dane.Aby ręcznie sprawdzić dane, możesz Transact-SQL kwerend lub procedur przechowywanych, które badanie warunków ograniczenia.

Ostrzeżenie

Aby dowiedzieć się, czy tabela jest zaufany, zobacz is_not_trusted kolumna w sys.check_constraints wykazu widoku.Aby uzyskać więcej informacji, zobacz sys.check_constraints (języka Transact-SQL).