Unikalne ograniczenie SQL Server

Unikalne ograniczenie SQL Server

Jednym z najbardziej frustrujących dla użytkownika bazy danych jest znalezienie zduplikowanych wpisów na tabeli. Chociaż istnieją pewne przypadki, w których posiadanie zduplikowanych wartości może być koniecznością, rzadko się zdarza.

Dlatego zamiast wracać do stołu, aby filtrować i usunąć zduplikowane rekordy, dobrze jest unikać problemu.

Na szczęście nie jest to ogromne przedsięwzięcie, ponieważ dzięki unikalnemu ograniczeniu na serwerze SQL możesz upewnić się, że dane w danej kolumnie są unikalne i nie istnieją żadne zduplikowane wartości.

Dołącz do nas, gdy dowiadujemy się, co robi unikalne ograniczenie.

Unikalne ograniczenie SQL Server

Dobrze jest myśleć o funkcjonalności unikalnego ograniczenia. Po utworzeniu unikalnego ograniczenia SQL Server automatycznie tworzy unikalny indeks do operacji. Zapewnia to, że silnik bazy danych może egzekwować wyjątkowość danych, zgodnie z definicją ograniczenia.

Pozwól nam zbadać, w jaki sposób możemy użyć unikalnego ograniczenia.

SQL Server Utwórz tabelę z unikalnym ograniczeniem

Poniższe dostarczone zapytanie tworzy tabelę z unikalnymi ograniczeniami:

Upuść bazę danych, jeśli istnieje sieci;
Utwórz sieci bazy danych;
korzystać z sieci;
Utwórz informacje o tabeli (
Id Int Not Null Identity Cey Key,
Nazwa użytkownika Varchar (50),
IP_ADDRESS VARCHAR (50) Nie zerowe unikalne,
Country Varchar (50) nie null,
przeglądarka Varchar (50) domyślna null,
bajty int not null domyślne 0
);

Poprzednie instrukcje ustawiają kolumnę ip_address jako unikalną. Zapewnia to, że do tabeli dodaje się tylko jeden wpis z tym samym adresem IP.

Możesz także ustawić kolumnę jako unikalną, jak pokazano następująco:

Utwórz informacje o tabeli (
Id Int Not Null Identity Cey Key,
Nazwa użytkownika Varchar (50),
ip_address varchar (50) nie null,
Country Varchar (50) nie null,
przeglądarka Varchar (50) domyślna null,
bajty int not null domyślne 0,
unikalny (ip_address)
);

Po uzyskaniu tabeli z unikalnym ograniczeniem możemy dodać nowy rekord w następujący sposób:

Wstaw do informacji (nazwa użytkownika, IP_ADDress, kraj, przeglądarka, bajty)
Wartości („Croosbar”, '88.241.248.129 ', „US”, „Mozilla”, 34000),
(„Codeyer”, „219.199.7.49 ', „de”, „Chrome”, 5648);

Poprzednia instrukcja Insert dodaje dwa rekordy do tabeli.

Jeśli ponownie uruchomimy poprzednią instrukcję, SQL Server zwraca błąd.

Naruszenie unikalnego kluczowego ograniczenia „uq__informat__5376bcc424ce6277”. Nie można wstawić zduplikowanego klucza do obiektu 'dbo.Informacja'. Duplikowana wartość kluczowa to (88.241.248.129).

W takim przypadku serwer SQL wskazuje, że poprzednie oświadczenie Wstawki narusza reguły unikalnego ograniczenia.

SQL Server Ustaw unikalne ograniczenie dla wielu kolumn

Możesz także przypisać unikalne ograniczenie do więcej niż jednej kolumny, jak podano w następującej składni:

Utwórz Tabela Table_name (
col_1,
col_2,
… ,
col_n,
unikalny (col_1, col_2,… col_n)
);

SQL Server Ustaw unikalne ograniczenie do istniejącej tabeli

Aby dodać unikalne ograniczenie do istniejącej tabeli, możesz użyć polecenia Alter Table, jak pokazano w poniższej składni:

Zmień tabelę TABLE_NAME
Dodaj nazwę ograniczenia ograniczenia
Unikalne (kolumna 1, kolumna2,…);

Na przykład:

Zmień informacje o tabeli
Dodaj Constraint Unique_IP unikalny (ip_address);

Poprzednie zapytanie dodaje unikalne ograniczenie do kolumny ip_address.

SQL Server Upuść unikalne ograniczenie

Możesz usunąć istniejące unikalne ograniczenie za pomocą polecenia Alter Table w następujący sposób:

Zmień tabelę TABLE_NAME
Upuść Constrainta Contract_name;

Przykład:

Zmień informacje o tabeli
Upuść ograniczenie Uniquq_IP;

Należy pamiętać, że nie można dokonać modyfikacji istniejącego unikalnego ograniczenia. Dlatego, aby zmienić obecne ograniczenie, musisz go upuścić, a następnie odtworzyć nowe definicje.

Wniosek

Dzięki za dołączenie do nas w tym samouczku. Ten przewodnik wyjaśnił podstawy pracy z unikalnymi ograniczeniami na serwerze SQL.

Dziękuje za przeczytanie. Do zobaczenia w naszym następnym samouczku!