Sdílet prostřednictvím


Vytvoření jedinečných omezení

platí pro: SQL Server 2016 (13.x) a novější verze Azure SQL DatabaseAzure SQL Managed InstanceSQL 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

  1. 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.

  2. V nabídce Návrhář tabulky vyberte Indexy/Klíče.

  3. V dialogovém okně Indexy/klíče vyberte Přidat.

  4. 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.

  5. V nabídce Soubor vyberte Uložit název tabulky.

Použít Transact-SQL

Vytvoření jedinečného omezení pomocí Transact-SQL

  1. V Průzkumníku objektůpřipojte se k instanci databázového serveru.

  2. Na panelu Standard vyberte Nový dotaz.

  3. 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í sloupce TransactionID.

    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

  1. V Průzkumníku objektůpřipojte se k instanci databázového serveru.

  2. Na panelu Standard vyberte Nový dotaz.

  3. Zkopírujte a vložte následující příklad do okna dotazu a vyberte Spustit. Příklad vytvoří jedinečné omezení sloupců PasswordHash a PasswordSalt v tabulce Person.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

  1. V Průzkumníku objektůpřipojte se k instanci databázového serveru.

  2. Na panelu Standard vyberte Nový dotaz.

  3. 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

  1. V Průzkumníku objektůpřipojte se k instanci databázového serveru.

  2. Na panelu Standard vyberte Nový dotaz.

  3. 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