Lezen in het Engels

Delen via


Unieke beperkingen maken

Van toepassing op: SQL Server 2016 (13.x) en latere versies Azure SQL DatabaseAzure SQL Managed InstanceSQL-database in Microsoft Fabric

U kunt een unieke beperking maken in SQL Server met behulp van SQL Server Management Studio of Transact-SQL om ervoor te zorgen dat er geen dubbele waarden worden ingevoerd in specifieke kolommen die niet deelnemen aan een primaire sleutel. Als u een unieke beperking maakt, wordt automatisch een bijbehorende unieke index gemaakt.

Notitie

Zie primaire sleutel, refererende sleutel en unieke sleutel in Azure Synapse Analyticsvoor informatie over unieke beperkingen in Azure Synapse Analytics.

machtigingen

Vereist ALTER-machtiging voor de tabel.

SQL Server Management Studio (SSMS) gebruiken

Een unieke beperking maken met behulp van SSMS

  1. Klik in Objectverkennermet de rechtermuisknop op de tabel waaraan u een unieke beperking wilt toevoegen en selecteer Ontwerp.

  2. Selecteer Indexen/Sleutels in het Tabelontwerper-menu.

  3. Selecteer in het dialoogvenster Indexes/Keys de optie Toevoegen.

  4. Selecteer in het raster onder AlgemeenType en kies Unieke Sleutel in de vervolgkeuzelijst rechts van de eigenschap, en selecteer vervolgens Sluiten.

  5. Selecteer in het menu BestandTabelnaam opslaan .

Transact-SQL gebruiken

Een unieke beperking maken met behulp van Transact-SQL

  1. Maak in Objectverkennerverbinding met een exemplaar van de Database Engine.

  2. Selecteer op de standaardbalk ,Nieuwe query.

  3. Kopieer en plak het volgende voorbeeld in het queryvenster en selecteer uitvoeren. In het voorbeeld wordt de tabel gemaakt TransactionHistoryArchive4 en wordt een unieke beperking gemaakt voor de kolom TransactionID.

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

Een unieke beperking voor een bestaande tabel maken

  1. Maak in Objectverkennerverbinding met een exemplaar van Database Engine.

  2. Selecteer op de Standaard-balk Nieuwe query.

  3. Kopieer en plak het volgende voorbeeld in het queryvenster en selecteer uitvoeren. In het voorbeeld wordt een unieke beperking gemaakt voor de kolommen PasswordHash en PasswordSalt in de tabel Person.Password.

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

Een unieke beperking voor een nieuwe tabel maken

  1. Maak in Objectverkennerverbinding met een exemplaar van de Database Engine.

  2. Selecteer op de standaardbalkNieuwe query.

  3. Kopieer en plak het volgende voorbeeld in het queryvenster en selecteer uitvoeren. In het voorbeeld wordt een tabel gemaakt en wordt een unieke beperking voor de kolom TransactionIDgedefinieerd.

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

Een unieke beperking maken voor een kolom met null-waarden

  1. Maak in Objectverkennerverbinding met een exemplaar van Database Engine.

  2. Ga naar de standaardbalk en selecteer Nieuwe query.

  3. Kopieer en plak het volgende voorbeeld in het queryvenster en selecteer uitvoeren. In het voorbeeld wordt een gefilterde unieke beperking gemaakt met behulp van de CREATE UNIQUE INDEX syntaxis, waarbij alleen uniekheid wordt afgedwongen voor niet-NULL waarden.

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