SQL Server Ograniczenie

SQL Server Ograniczenie

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:

  1. Podczas tworzenia stołu
  2. Korzystanie z polecenia Tabela Alter w istniejącej 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.