Vytvoření jedinečných omezení
platí pro: SQL Server 2016 (13.x) a novější verze
Azure SQL Database
Azure SQL Managed Instance
SQL Database v Microsoft Fabric
Jedinečné omezení v SQL Serveru můžete vytvořit pomocí aplikace SQL Server Management Studio nebo Transact-SQL, abyste zajistili, že do konkrétních sloupců, které nejsou součástí primárního klíče, nebudou zadány žádné duplicitní hodnoty. Vytvoření jedinečného omezení automaticky vytvoří odpovídající jedinečný index.
Poznámka
Informace o jedinečných omezeních ve službě Azure Synapse Analytics najdete v tématu primární klíč, cizí klíč a jedinečný klíč ve službě Azure Synapse Analytics.
oprávnění
Vyžaduje oprávnění ALTER na tabulce.
Použití aplikace SQL Server Management Studio (SSMS)
Vytvoření jedinečného omezení pomocí SSMS
V Průzkumník objektůklikněte pravým tlačítkem myši na tabulku, do které chcete přidat jedinečné omezení, a vyberte Návrh.
V nabídce Návrhář tabulky vyberte Indexy/Klíče.
V dialogovém okně Indexy/klíče vyberte Přidat.
V mřížce pod Obecnévyberte Typ a v rozevíracím seznamu napravo od vlastnosti zvolte Jedinečný klíč a pak vyberte Zavřít.
V nabídce Soubor vyberte Uložit název tabulky.
Použít Transact-SQL
Vytvoření jedinečného omezení pomocí Transact-SQL
V Průzkumníku objektůpřipojte se k instanci databázového serveru.
Na panelu Standard vyberte Nový dotaz.
Zkopírujte a vložte následující příklad do okna dotazu a vyberte Spustit. Příklad vytvoří tabulku
TransactionHistoryArchive4
a vytvoří jedinečné omezení sloupceTransactionID
.USE AdventureWorks2022; GO CREATE TABLE Production.TransactionHistoryArchive4 ( TransactionID int NOT NULL, CONSTRAINT AK_TransactionID UNIQUE(TransactionID) ); GO
Vytvoření jedinečného omezení pro existující tabulku
V Průzkumníku objektůpřipojte se k instanci databázového serveru.
Na panelu Standard vyberte Nový dotaz.
Zkopírujte a vložte následující příklad do okna dotazu a vyberte Spustit. Příklad vytvoří jedinečné omezení sloupců
PasswordHash
aPasswordSalt
v tabulcePerson.Password
.USE AdventureWorks2022; GO ALTER TABLE Person.Password ADD CONSTRAINT AK_Password UNIQUE (PasswordHash, PasswordSalt); GO
Vytvoření jedinečného omezení pro novou tabulku
V Průzkumníku objektůpřipojte se k instanci databázového serveru.
Na panelu Standard vyberte Nový dotaz.
Zkopírujte a vložte následující příklad do okna dotazu a vyberte Spustit. Příklad vytvoří tabulku a definuje jedinečné omezení sloupce
TransactionID
.USE AdventureWorks2022; GO CREATE TABLE Production.TransactionHistoryArchive2 ( TransactionID int NOT NULL, CONSTRAINT AK_TransactionID UNIQUE(TransactionID) ); GO
Vytvoření jedinečného omezení pro sloupec s možnou hodnotou null
V Průzkumníku objektůpřipojte se k instanci databázového serveru.
Na panelu Standard vyberte Nový dotaz.
Zkopírujte a vložte následující příklad do okna dotazu a vyberte Spustit. Příklad vytvoří filtrované jedinečné omezení pomocí syntaxe
CREATE UNIQUE INDEX
, vynucující jedinečnost pouze u hodnot, které nejsouNULL
.USE AdventureWorks2022; GO CREATE UNIQUE INDEX UQ_AdventureWorksDWBuildVersion ON dbo.AdventureWorksDWBuildVersion (DBVersion) WHERE (DBVersion IS NOT NULL); GO
Související obsah
- ALTER TABLE (Transact-SQL)
- CREATE TABLE (Transact-SQL)
- omezení_tabulky (Transact-SQL)