Dela via


Skapa unika begränsningar

gäller för: SQL Server 2016 (13.x) och senare versioner Azure SQL DatabaseAzure SQL Managed InstanceSQL-databas i Microsoft Fabric

Du kan skapa en unik begränsning i SQL Server med hjälp av SQL Server Management Studio eller Transact-SQL för att säkerställa att inga duplicerade värden anges i specifika kolumner som inte deltar i en primärnyckel. Om du skapar en unik begränsning skapas automatiskt ett motsvarande unikt index.

Obs

Information om unika begränsningar i Azure Synapse Analytics finns i Primärnyckel, sekundärnyckel och unik nyckel i Azure Synapse Analytics.

behörigheter

Kräver ALTER-behörighet för tabellen.

Använda SQL Server Management Studio (SSMS)

Skapa en unik begränsning med hjälp av SSMS

  1. I Object Explorerhögerklickar du på tabellen som du vill lägga till en unik begränsning till och väljer Design.

  2. På menyn Table Designer väljer du Index/Nycklar.

  3. I dialogrutan Index/nycklar väljer du Lägg till.

  4. I rutnätet under Allmäntväljer du Typ och väljer Unik nyckel i listrutan till höger om egenskapen och väljer sedan Stäng.

  5. På menyn Arkiv väljer du Spara tabellnamn.

Använd Transact-SQL

Skapa en unik begränsning med hjälp av Transact-SQL

  1. I Object Exploreransluter du till en instans av databasmotorn.

  2. I fältet Standard väljer du Ny fråga.

  3. Kopiera och klistra in följande exempel i frågefönstret och välj Kör. Exemplet skapar tabellen TransactionHistoryArchive4 och skapar en unik begränsning för kolumnen TransactionID.

    USE AdventureWorks2022;  
    GO  
    CREATE TABLE Production.TransactionHistoryArchive4  
     (  
       TransactionID int NOT NULL,   
       CONSTRAINT AK_TransactionID UNIQUE(TransactionID)   
    );   
    GO  
    

Skapa en unik begränsning för en befintlig tabell

  1. I Object Exploreransluter du till en instans av databasmotorn.

  2. I fältet Standard väljer du Ny fråga.

  3. Kopiera och klistra in följande exempel i frågefönstret och välj Kör. Exemplet skapar en unik begränsning för kolumnerna PasswordHash och PasswordSalt i tabellen Person.Password.

    USE AdventureWorks2022;   
    GO  
    ALTER TABLE Person.Password   
    ADD CONSTRAINT AK_Password UNIQUE (PasswordHash, PasswordSalt);   
    GO  
    
    

Skapa en unik begränsning för en ny tabell

  1. I Object Exploreransluter du till en instans av databasmotorn.

  2. I fältet Standard väljer du Ny fråga.

  3. Kopiera och klistra in följande exempel i frågefönstret och välj Kör. Exemplet skapar en tabell och definierar en unik begränsning för kolumnen TransactionID.

    USE AdventureWorks2022;  
    GO  
    CREATE TABLE Production.TransactionHistoryArchive2  
    (  
       TransactionID int NOT NULL,  
       CONSTRAINT AK_TransactionID UNIQUE(TransactionID)  
    );  
    GO  
    

Skapa en unik begränsning för en nullbar kolumn

  1. I Object Exploreransluter du till en instans av databasmotorn.

  2. I fältet Standard väljer du Ny fråga.

  3. Kopiera och klistra in följande exempel i frågefönstret och välj Kör. I exemplet skapas en filtrerad unik begränsning med hjälp av CREATE UNIQUE INDEX syntax, vilket endast framtvingar unikhet för värden som inte ärNULL.

    USE AdventureWorks2022;  
    GO
    CREATE UNIQUE INDEX UQ_AdventureWorksDWBuildVersion
    ON dbo.AdventureWorksDWBuildVersion (DBVersion)
    WHERE (DBVersion IS NOT NULL);
    GO