Ograniczenie odnosi się do reguły, która określa sposób zastosowania danych w danej kolumnie. Ograniczenie może wykonywać takie działania, jak zapobieganie wstawieniu wartości zerowych, zapobieganie wstawieniu wartości zduplikowanych i więcej.
W tym artykule zbadamy jedno z praktycznych ograniczeń na serwerze SQL o nazwie Ograniczenie Sprawdź. Ograniczenie kontroli służy głównie do zapewnienia integralności danych w danej kolumnie.
Korzystając z ograniczenia kontroli, możesz upewnić się, że dane, które są dodawane do danej kolumny, nieustannie oceniają daną wartość logiczną. Na przykład możesz dodać ograniczenie kontroli, które zapewnia, że do tej kolumny są dodawane tylko wartości ministerskie.
Omówmy to dalej.
SQL Server Ograniczenie
Istnieją dwa sposoby dodania ograniczenia kontroli do kolumny tabeli:
To zawsze doskonała praktyka jest dodawanie ograniczeń podczas tworzenia tabeli. Zapewnia to zastosowanie reguły do wszystkich danych w tej kolumnie.
Aby zilustrować, weź definicję tabeli, która pokazano następująco:
Utwórz użytkowników tabeli (
Id Int Identity Klucz podstawowy,
Nazwa użytkownika Varchar (100) nie null,
Rejestr_date Sprawdź datę (Enroll_Date> '2022-01-01')
);
W podanej tabeli przykładowej utworzyliśmy trzy kolumny, każda z jego unikalnym typem danych i wartościami. Jednak w kolumnie Enroll_Date ustawiamy ograniczenie kontroli, które sprawdza, czy dowolna wartość daty dodana do tej kolumny jest większa niż 2022-01-01.
Zaczynamy od wywołania słowa kluczowego sprawdzania, a następnie wyrażenia boolean, które chcemy zastosować do tej kolumny.
Możesz także ustawić nazwę ograniczenia za pomocą słowa kluczowego ograniczenia. Przykład jest następujący:
Utwórz użytkowników tabeli (
Id Int Identity Klucz podstawowy,
Nazwa użytkownika Varchar (100) nie null,
Rejestr_date Ograniczenie daty Verify_Date Check (Enroll_Date> '2022-01-01')
);
W takim przypadku przypisujemy nazwę „Verify_Date” do utworzonego ograniczenia. Nazwanie ograniczenia może ułatwić życie, gdy trzeba usunąć lub zaktualizować parametry ograniczenia.
NOTATKA: Nie możesz mieć nienazwanych ograniczeń w swojej bazie danych. Stąd, jeśli nie podano nazwy, serwer SQL automatycznie generuje nazwę twojego ograniczenia.
Po zdefiniowaniu ograniczenia możemy dodać dane, jak pokazano następująco:
wstawić
do
Użytkownicy (nazwa użytkownika,
Rejestr_date)
Wartości („Użytkownik 1”,
„2022-01-02”);
Możesz zauważyć, że poprzednia instrukcja wstawka jest zgodna z regułami ograniczenia w kolumnie Enroll_Date.
Jeśli jednak naruszymy reguły tego ograniczenia, SQL Server zwraca błąd, jak pokazano w następujący sposób:
wstawić
do
Użytkownicy (nazwa użytkownika,
Rejestr_date)
wartości („user2”, „2021-12-31”);
Wyjście:
Błąd SQL [547] [23000]: Instrukcja Wstaw jest sprzeczna z ograniczeniem sprawdzania „VERIFIFE_DATE”. Konflikt miał miejsce w bazie danych „Resolver”, tabela „DBO.Użytkownicy ”, kolumna„ Enroll_date ”.
Jak widać, serwer SQL ostrzega o naruszeniu ograniczenia przez instrukcję Insert.
Modyfikowanie istniejącego ograniczenia
Aby zmienić definicję istniejącego ograniczenia za pomocą transaktu-SQL, musisz usunąć ograniczenie i odtworzyć ją z nowymi definicjami.
Dodanie ograniczenia kontroli do istniejącej tabeli
Aby dodać ograniczenie kontroli do istniejącej tabeli, użyj składni podanej w następujący sposób:
Zmień tabelę TABLE_NAME
Dodaj Contrarity Contract_name Check (Constraint_Definition);
Usunięcie ograniczenia kontroli
Aby usunąć ograniczenie kontroli, możesz użyć polecenia Alter Table, jak pokazano następująco:
Zmień tabelę TABLE_NAME
Upuść Constrainta Contract_name;
Wyłączenie ograniczenia
Możesz pominąć reguły ograniczenia bez upuszczania ograniczenia, wyłączając. Poniżej pokazuje składnię, aby wyłączyć ograniczenie:
Zmień tabelę TABLE_NAME
NECHECK CONTERNAINT CONTERNAINT_NAME;
Podana składnia powinna wyłączyć ograniczenie dla instrukcji wstawiania i aktualizacji.
Wniosek
W tym poście badaliśmy, jak korzystać z pracy z ograniczeniem kontroli na serwerze SQL. Omówiliśmy, jak stworzyć nowe ograniczenie, jak zmienić ograniczenie, jak wyłączyć ograniczenie i jak usunąć ograniczenie z tabeli.