Tworzenie unikatowych ograniczeń
Dotyczy: SQL Server 2016 (13.x) i nowsze wersje
Azure SQL Database
Azure SQL Managed Instance
SQL Database w usłudze Microsoft Fabric
W programie SQL Server można utworzyć unikatowe ograniczenie przy użyciu programu SQL Server Management Studio lub Transact-SQL, aby upewnić się, że żadne zduplikowane wartości nie są wprowadzane w określonych kolumnach, które nie uczestniczą w kluczu podstawowym. Utworzenie unikatowego ograniczenia powoduje automatyczne utworzenie odpowiedniego unikatowego indeksu.
Notatka
Aby uzyskać informacje na temat unikatowych ograniczeń w usłudze Azure Synapse Analytics, zobacz klucz podstawowy, klucz obcy i unikatowy klucz w usłudze Azure Synapse Analytics.
uprawnienia
Wymaga uprawnienia ALTER na tabeli.
Korzystanie z programu SQL Server Management Studio (SSMS)
Tworzenie unikatowego ograniczenia przy użyciu programu SSMS
W Eksplorator obiektówkliknij prawym przyciskiem myszy tabelę, do której chcesz dodać unikatowe ograniczenie, a następnie wybierz Projekt.
Na menu Projektanta Tabel wybierz Indeksy/Klucze.
W oknie dialogowym indeksów/kluczy wybierz pozycję Dodaj.
W siatce pod Ogólnewybierz Typ i wybierz Unikatowy Klucz z listy rozwijanej po prawej stronie właściwości, a następnie wybierz Zamknij.
W menu Plik wybierz pozycję Zapisz nazwę tabeli .
użyj Transact-SQL
Tworzenie unikatowego ograniczenia przy użyciu Transact-SQL
W Eksploratorze obiektów nawiąż połączenie z wystąpieniem silnika bazy danych.
Na pasku standardowym wybierz Nowe zapytanie.
Skopiuj poniższy przykład i wklej go w oknie zapytania, a następnie wybierz pozycję Wykonaj. Przykład tworzy tabelę
TransactionHistoryArchive4
i tworzy unikatowe ograniczenie w kolumnieTransactionID
.USE AdventureWorks2022; GO CREATE TABLE Production.TransactionHistoryArchive4 ( TransactionID int NOT NULL, CONSTRAINT AK_TransactionID UNIQUE(TransactionID) ); GO
Tworzenie unikatowego ograniczenia dla istniejącej tabeli
W Eksploratorze obiektów , nawiąż połączenie z instancją silnika bazy danych.
Na pasku standardowym wybierz pozycję Nowe zapytanie.
Skopiuj poniższy przykład i wklej go w oknie zapytania, a następnie wybierz pozycję Wykonaj. W przykładzie utworzono unikatowe ograniczenie dla kolumn
PasswordHash
iPasswordSalt
w tabeliPerson.Password
.USE AdventureWorks2022; GO ALTER TABLE Person.Password ADD CONSTRAINT AK_Password UNIQUE (PasswordHash, PasswordSalt); GO
Tworzenie unikatowego ograniczenia dla nowej tabeli
W Eksploratorze obiektów nawiąż połączenie z wystąpieniem silnika bazy danych.
Na standardowym pasku wybierz Nowe zapytanie.
Skopiuj poniższy przykład i wklej go w oknie zapytania, a następnie wybierz pozycję Wykonaj. W przykładzie zostanie utworzona tabela i zdefiniowano unikatowe ograniczenie w kolumnie
TransactionID
.USE AdventureWorks2022; GO CREATE TABLE Production.TransactionHistoryArchive2 ( TransactionID int NOT NULL, CONSTRAINT AK_TransactionID UNIQUE(TransactionID) ); GO
Tworzenie unikatowego ograniczenia w kolumnie dopuszczanej do wartości null
W Eksploratorze Obiektów nawiąż połączenie z wystąpieniem silnika bazy danych.
Na standardowym pasku wybierz pozycję Nowe zapytanie.
Skopiuj poniższy przykład i wklej go w oknie zapytania, a następnie wybierz pozycję Wykonaj. W przykładzie jest tworzony filtrowany unikatowych ograniczeń przy użyciu składni
CREATE UNIQUE INDEX
, wymuszając unikatowość tylko dla wartości innych niżNULL
.USE AdventureWorks2022; GO CREATE UNIQUE INDEX UQ_AdventureWorksDWBuildVersion ON dbo.AdventureWorksDWBuildVersion (DBVersion) WHERE (DBVersion IS NOT NULL); GO