Ograniczenia
Ograniczenia pozwalają określić sposób Aparat baz danych automatycznie wymusza integralność bazy danych.Ograniczenia zdefiniować reguły dotyczące wartości dopuszczalne w kolumnach i są standardowy mechanizm wymuszanie integralność.Użycie ograniczenia jest preferowanym za pomocą DMLWyzwalacze, zasady, i Ustawienia domyślne.optymalizator kwerendy używa także definicje ograniczenie do konstruowania planów wykonanie kwerendy o wysokiej wydajności.
Klasy ograniczenia
SQL Serverobsługuje następujące klasy ograniczenia:
NIE określa wartości NULL, kolumna nie akceptuje wartości NULL.Aby uzyskać więcej informacji, zobacz Zezwalanie na wartości Null.
Sprawdzanie wymusić ograniczenia integralność domena przez ograniczenie wartości, które można umieścić kolumna.Aby uzyskać więcej informacji, zobacz Ograniczenia CHECK.
Ograniczenie typu CHECK określa wartość logiczna (ma wartość TRUE, FALSE lub nieznany) stosowany do wszystkich wartości, które są wprowadzane kolumna warunek wyszukiwania.Wszystkie wartości, które mają wartość FALSE, są odrzucane.Można określić wiele ograniczeń CHECK dla każdej kolumna.Następujący przykładowy pokazuje tworzenie ograniczenie chk_id.Ograniczenie to wymusza Ponadto domena klucz podstawowy upewniając się, że tylko liczby z zakres są wprowadzane dla klucz.
CREATE TABLE cust_sample ( cust_id int PRIMARY KEY, cust_name char(50), cust_address char(50), cust_credit_limit money, CONSTRAINT chk_id CHECK (cust_id BETWEEN 0 and 10000 ) )
Ograniczenie typu UNIQUE wymuszenia unikatowości wartości w zestaw kolumn.
Ograniczenie typu UNIQUE żadne dwa wiersze w tabela mogą mieć taką samą wartość kolumny.Klucze podstawowe również wymusić unikatowość, ale klucze podstawowe nie pozwalają na wartości NULL jako jedną z wartości unikatowe.Aby uzyskać więcej informacji, zobacz Ograniczenie typu UNIQUE.
Ograniczenia klucza podstawowego zidentyfikować kolumna lub zestaw kolumn, których wartości, które jednoznacznie identyfikują wiersze w tabela.Aby uzyskać więcej informacji, zobacz Ograniczenie na klucz podstawowy.
Żadne dwa wiersze w tabela może mieć taki sam klucz podstawowy wartości.Nie można wprowadzić wartość NULL dla dowolnej kolumna w klucz podstawowy.Zaleca się używanie mały, całkowitą kolumna jako klucz podstawowy.Każda tabela powinna mieć klucz podstawowy.kolumna lub kombinacji kolumn, które kwalifikują się jako wartość klucz podstawowy jest określany jako klucz kandydujący.
Poniższy przykład tworzy part_sample tabela i określa part_nmbr pole jako klucz podstawowy.
CREATE TABLE part_sample (part_nmbr int PRIMARY KEY, part_name char(30), part_weight decimal(6,2), part_color char(15) );
Ograniczenia klucza OBCEGO zidentyfikować i wymuszenia relacje między tabelami.Aby uzyskać więcej informacji, zobacz Ograniczenia FOREIGN KEY.
klucz obcy w jednej tabela wskazuje na klucz kandydujący w innej tabela.W poniższym przykładzie order_part tabela ustanawia klucz obcy, który odwołuje się do part_sample tabela zdefiniowanej wcześniej.
CREATE TABLE order_part (order_nmbr int, part_nmbr int FOREIGN KEY REFERENCES part_sample(part_nmbr) ON DELETE NO ACTION, qty_ordered int); GO
Nie można wstawić wiersza o wartości klucz obcy z wyjątkiem NULL, jeśli żaden klucz kandydujący z tą wartością.NA klauzula DELETE Określa, jakie działania zostaną podjęte podczas próby usunięcia wiersza, do których istniejący punkt kluczy obcych.NA klauzula DELETE posiada następujące opcje:
Brak akcji określa, że usunięcie zakończy się niepowodzeniem z błędem.
KASKADA Określa, że usuwane są również wszystkie wiersze z kluczy obcych, wskazując usunięty wiersz.
zestawNULL Określa, że wszystkie wiersze z kluczy obcych, wskazując usunięty wiersz zestaw wartości null.
zestawDEFAULT Określa, że są wszystkie wiersze z kluczy obcych, wskazując usunięty wiersz zestaw do ich wartości domyślnych.Aby uzyskać więcej informacji, zobacz Ustawienia domyślne.
Aktualizacja w klauzula Określa akcje podejmowane są próby aktualizacji klucz kandydujący wartość do których istniejących obcych klucze punkt.To klauzula obsługuje również brak akcji, KASKADOWO, ustaw wartość NULL i Ustaw domyślne opcje.
Kolumny i ograniczeń tabeli
Ograniczenia mogą być ograniczenia kolumna lub ograniczenia tabela.Ograniczenie kolumna określone jako część definicji kolumna i dotyczy tylko tej kolumna.Ograniczenia w poprzednich przykładach są ograniczenia dla kolumna.Ograniczenie tabela zadeklarowano niezależnie od definicji kolumn i można zastosować więcej niż jedną kolumna w tabela.Ograniczeń tabeli muszą być używane, gdy więcej niż jedna kolumna musi zawierać ograniczenia.
Na przykład, jeśli tabela ma dwie lub więcej kolumn w klucz podstawowy, ograniczenie tabeli należy użyć, aby dołączyć kolumny, zarówno w klucz podstawowy.Należy rozważyć tabela, która rejestruje zdarzenia występujące w komputerze w fabryce.Załóżmy, że zdarzenia kilka typów może wystąpić w tym samym czas, ale nie dwa zdarzenia występujące w tym samym czas może być tego samego typu.To może być wymuszana w tabela przez obu tym event_type i event_time kolumn w dwóch kolumn klucz podstawowy, jak pokazano w następującym przykładzie.
CREATE TABLE factory_process
(event_type int,
event_time datetime,
event_site char(50),
event_desc char(1024),
CONSTRAINT event_key PRIMARY KEY (event_type, event_time) )