Przewodnik po UNIKATOWYCH Ograniczeniach w Microsoft SQL Server

Tworząc UNIKALNE przymus, administratorzy programu SQL Server określają, że kolumna bazy danych nie może zawierać zduplikowanych wartości. Kiedy tworzysz nowy UNIKALNY przymus, SQL Server sprawdza daną kolumnę, aby określić, czy zawiera ona jakiekolwiek zduplikowane wartości. Jeśli stół zawiera duplikaty, polecenie tworzenia wiązania kończy się niepowodzeniem. Podobnie po zdefiniowaniu ograniczenia UNIQUE w kolumnie próby dodania lub zmodyfikowania danych, które spowodowałyby istnienie duplikatów, również kończą się niepowodzeniem.

Kod SQL na czarnym tle.
KIVILCIM PINAR / Getty Images

Dlaczego warto korzystać z UNIKATOWYCH Ograniczeń

Ograniczenie UNIQUE i klucz podstawowy wymuszają unikalność, ale czasami ograniczenie UNIQUE jest lepszym wyborem.

  • Użyj ograniczenia UNIQUE, aby określić kilka ograniczeń w tabeli. Do tabeli można dołączyć tylko jeden klucz podstawowy.
  • Użyj ograniczenia UNIQUE, gdy kolumna zezwala na wartości null. Ograniczenia klucza podstawowego można dołączać tylko do kolumn, które nie zezwalają na wartości null.
instagram viewer

Tworzenie UNIKALNEGO Ograniczenia

Najprostszym sposobem utworzenia ograniczenia unikatowego w Transact-SQL jest połączenie z aparatem bazy danych w Eksploratorze obiektów w SQL Management Studio, a następnie kliknięcie Nowe zapytanie.

Użyj następującego zapytania, modyfikując warunki zgodnie z potrzebami, aby utworzyć nową tabelę i dodać ograniczenie do kolumny:

UŻYWAJ AdventureWorks2012; 
UDAĆ SIĘ
UTWÓRZ TABELĘ Produkcja. Historia TransakcjiArchiwum4
(
TransactionID int NOT NULL,
OGRANICZENIE AK_TransactionID UNIQUE (TransactionID)
);
UDAĆ SIĘ.

Wykonaj zapytanie.

Podobnie, aby utworzyć ograniczenie unikatowe w istniejącej tabeli, wykonaj następujące zapytanie T-SQL:

UŻYWAJ AdventureWorks2012; 
UDAĆ SIĘ
ALTER TABELA Osoba. Hasło
DODAJ OGRANICZENIE AK_Password UNIQUE (PasswordHash, PasswordSalt);
UDAĆ SIĘ.

UNIKALNE Ograniczenia vs. UNIKALNE Indeksy

Istnieje pewne zamieszanie dotyczące różnicy między ograniczeniem UNIQUE a indeksem UNIQUE. Chociaż możesz używać różnych poleceń T-SQL do ich tworzenia (ALTER TABLE i ADD CONSTRAINT dla ograniczeń i CREATE UNIQUE INDEX dla indeksów), w większości mają one ten sam efekt. W rzeczywistości, kiedy tworzysz ograniczenie UNIQUE, w rzeczywistości tworzy ono indeks UNIQUE w tabeli. Zwróć jednak uwagę na kilka różnic:

  • Podczas tworzenia indeksu możesz dodać dodatkowe opcje do polecenia tworzenia.
  • Kolumna podlegająca ograniczeniu UNIQUE może być używana jako klucz obcy.