Udostępnij za pośrednictwem


Creating and Modifying CHECK Constraints

Ograniczenie typu CHECK jako części definicji tabela można utworzyć podczas tworzenia tabela.Jeśli tabela już istnieje, można dodać ograniczenia CHECK.Tabele i kolumny mogą zawierać wiele ograniczeń typu CHECK.

Jeśli istnieje już ograniczenie typu CHECK, można zmodyfikować lub usunąć go.Na przykład można zmodyfikować wyrażenie, które jest używane przez ograniczenie typu CHECK dla kolumna w tabela.

Uwaga

Aby zmodyfikować ograniczenie typu CHECK, należy najpierw usunąć istniejące ograniczenia CHECK i następnie odtworzyć z nowej definicji.

Poniżej Transact-SQL przykład tworzy nową tabela, a następnie modyfikuje tabela przez dodanie CHECK ograniczenia typu CreditRating Kolumna.

IF OBJECT_ID ('dbo.Vendors', 'U') IS NOT NULL
DROP TABLE dbo.Vendors;
GO
CREATE TABLE dbo.Vendors 
    (VendorID int PRIMARY KEY, VendorName nvarchar (50), 
    CreditRating tinyint)
GO
ALTER TABLE dbo.Vendors ADD CONSTRAINT CK_Vendor_CreditRating
    CHECK (CreditRating >= 1 AND CreditRating <= 5)

Usuwanie ograniczenia CHECK, aby usunąć ograniczenia wartości danych akceptowane w kolumna lub kolumn znajdujących się w wyrażeniu ograniczającym.

Aby utworzyć ograniczenia CHECK podczas tworzenia tabela

Aby utworzyć ograniczenia CHECK w istniejącej tabela

Aby usunąć ograniczenie typu CHECK

Wymuszanie ograniczenia CHECK przy użyciu WITH NOCHECK

Ograniczenie typu CHECK zostanie dodany do istniejącej tabela, ograniczenie typu CHECK można zastosować do nowych danych, czy tylko do istniejących danych.Domyślnie ograniczenia CHECK dotyczą zarówno danych istniejących, jak i wszelkich nowych danych.Aby zastosować nowe ograniczenie tylko do nowo dodane dane za pomocą opcji NOCHECK WITH instrukcja ALTER tabela.Ta opcja jest przydatna, gdy istniejące dane spełniają już nowego ograniczenia CHECK lub gdy reguły biznesowej wymaga ograniczenie, aby wymuszane były tylko od tego momentu.

Na przykład może wymagać ograniczeniem stare, kody pocztowe jest ograniczona do pięciu cyfr, ale nowe ograniczenie wymaga dziewięciocyfrowe kody pocztowe.Dotychczasowe dane z kodów pocztowych 5 cyfrowy jest nadal ważna i będzie współistnieć z nowymi danymi, które zawierają dziewięciocyfrowe kody pocztowe.Dlatego tylko nowe dane powinny być sprawdzane względem nowego ograniczenia.

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

Aby zapobiec Sprawdzanie istniejących danych przy tworzeniu ograniczenia CHECK

Wyłączanie ograniczenia CHECK

Można wyłączyć istniejące ograniczenia CHECK dla określonej operacji, takich jak operacji INSERT, UPDATE operacji i przetwarzanie replikacja.

  • Instrukcji INSERT i UPDATE

    Wyłączanie ograniczenia wyboru włącza danych w tabela, która ma być modyfikowana bez są sprawdzane przez ograniczenia.Wyłączanie ograniczenia CHECK podczas wykonywania w instrukcji INSERT i UPDATE, jeżeli nowe dane spowodują naruszenie ograniczenia, lub jeśli ograniczenie powinny być stosowane tylko wobec danych zawartych już w bazie danych.

  • Przetwarzanie replikacja

    Wyłączenie ograniczenia CHECK podczas replikacja, jeśli ograniczenie dotyczy urządzenie źródłowe bazy danych.Podczas replikacji tabela definicji tabela i dane są kopiowane z urządzenie źródłowe bazy danych do docelowej bazy danych.Te dwie bazy danych są zazwyczaj, ale nie koniecznie na oddzielnych serwerach.Jeśli ograniczenia CHECK do źródłowa baza danych nie są wyłączone, 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 CHECK dla instrukcji INSERT i UPDATE

Aby wyłączyć ograniczenie CHECK przy replikacja

Aby uzyskać informacje dotyczące ograniczeń typu CHECK

See Also

Concepts