Udostępnij za pośrednictwem


Creating and Modifying FOREIGN KEY Constraints

Po utworzeniu tabela można utworzyć ograniczenie klucz obcy jako części definicji tabela.Jeśli tabela już istnieje w innym, można dodać ograniczenia klucz obcy, pod warunkiem, że ograniczenie klucz obcy jest połączony z istniejące ograniczenia klucz podstawowy lub ograniczenie UNIQUE lub takie same, tabeli.Tabela może zawierać wiele ograniczeń klucz obcy.

Istnieje już ograniczenie klucz obcy, można zmodyfikować lub usunąć go.Na przykład może być ograniczenie klucz obcy tabela do odwoływania się do innych kolumn.Nie można jednak zmienić długość kolumna, która jest zdefiniowana z ograniczeniem klucz obcy.

Uwaga

Aby zmodyfikować ograniczenie klucz obcy, należy najpierw usunąć istniejące ograniczenie klucz obcy i utworzyć go ponownie z nowej definicji.

Usuwanie ograniczenia klucz obcy Aby zrezygnować więzy integralność kolumny klucz obcy między podstawowy klucz lub ograniczenie UNIQUE kolumn powiązanych relacją w innej tabela.

Aby utworzyć ograniczenie klucz obcy, podczas tworzenia tabela

CREATE TABLE (Transact-SQL)

Aby utworzyć ograniczenie klucz obcy w istniejącej tabela

ALTER tabela (języka Transact-SQL)

Jak Tworzenie relacji między tabelami (Visual Database Tools)

Aby usunąć ograniczenie klucz obcy

ALTER tabela (języka Transact-SQL)

Wymuszanie ograniczenia klucz obcy przy użyciu WITH NOCHECK

Jeśli ograniczenie klucz obcy zostanie dodane do istniejącej kolumna lub kolumn tabela, domyślnie Database Engine sprawdza, czy istniejące dane w kolumnach, upewnij się, że wszystkie wartości NULL, chyba że w kolumnach, do którego istnieje odwołanie ograniczenia klucz podstawowy lub UNIQUE. Jednakże, określając NOCHECK WITH Database Engine może być uniemożliwił sprawdzania danych kolumna względem nowego ograniczenia i do dodania nowego ograniczenia niezależnie od danych kolumna. Opcja WITH NOCHECK jest przydatna, gdy istniejące dane spełniają już nowego ograniczenia klucz obcy, lub gdy reguły biznesowej wymaga ograniczenie, aby wymuszane były tylko od tego momentu.

Jednak należy zachować ostrożność podczas dodawania ograniczenia bez sprawdzania istniejących danych, to omija formantów w Database Engine które wymuszanie integralność danych tabela.

Aby zapobiec Sprawdzanie istniejących danych podczas tworzenia ograniczenia klucz obcy

ALTER tabela (języka Transact-SQL)

Wyłączanie ograniczenia klucz obcy

Można wyłączyć istniejące operacje forspecific ograniczenia klucz obcy, takie jak operacje INSERT, UPDATE operacji i przetwarzanie replikacja.

  • Instrukcji INSERT i UPDATE

    Wyłączanie ograniczenia klucz obcy umożliwia danych w tabela, która ma być modyfikowana bez są sprawdzane przez ograniczenia.W instrukcji INSERT i UPDATE należy wyłączyć ograniczenie klucz obcy, jeśli nowe dane spowodują naruszenie ograniczenia lub jeśli ograniczenie powinny być stosowane tylko wobec danych zawartych już w bazie danych.

    Uwaga

    Wszystkie akcje kaskadowych zdefiniowane na powiązanych klucz podstawowy nie będą wykonywane w odniesieniu do wierszy, które zawierają kluczy obcych, które są wyłączone.

  • Przetwarzanie replikacja

    Wyłączanie ograniczenia klucz obcy podczas replikacja, jeśli ograniczenie dotyczy urządzenie źródłowe bazy danych.Podczas replikacji tabela definicji tabela i dane jest kopiowany z urządzenie źródłowe bazy danych do docelowej bazy danych.Jeśli ograniczenia klucz obcy są specyficzne dla źródłowa baza danych, ale nie są wyłączone podczas replikacja, one niepotrzebnie uniemożliwiać nowych danych wprowadzanych w docelowej bazie danych.Aby uzyskać więcej informacji zobaczKontrolowanie ograniczenia tożsamości i wyzwalaczy z nie dla replikacja.

Aby wyłączyć ograniczenie klucz obcy dla instrukcji INSERT i UPDATE

ALTER tabela (języka Transact-SQL)

Jak Wyłączanie ograniczenia klucz obcy z INSERT i UPDATE instrukcji (Visual Database Tools)

Aby wyłączyć ograniczenie klucz obcy przy replikacja

ALTER tabela (języka Transact-SQL)

Jak Wyłączanie ograniczenia klucz obcy na czas replikacja (Visual Database Tools)

Aby uzyskać informacje dotyczące ograniczeń klucz obcy

sys.foreign_keys (języka Transact-SQL)

Aby uzyskać informacje dotyczące kolumny wchodzące w skład ograniczenie klucz obcy

sys.foreign_key_columns (Transact-SQL)

See Also

Concepts