Udostępnij za pośrednictwem


Tworzenie unikatowych ograniczeń

Dotyczy: SQL Server 2016 (13.x) i nowsze wersje Azure SQL DatabaseAzure SQL Managed InstanceSQL 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

  1. W Eksplorator obiektówkliknij prawym przyciskiem myszy tabelę, do której chcesz dodać unikatowe ograniczenie, a następnie wybierz Projekt.

  2. Na menu Projektanta Tabel wybierz Indeksy/Klucze.

  3. W oknie dialogowym indeksów/kluczy wybierz pozycję Dodaj.

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

  5. W menu Plik wybierz pozycję Zapisz nazwę tabeli .

użyj Transact-SQL

Tworzenie unikatowego ograniczenia przy użyciu Transact-SQL

  1. W Eksploratorze obiektów nawiąż połączenie z wystąpieniem silnika bazy danych.

  2. Na pasku standardowym wybierz Nowe zapytanie.

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

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

Tworzenie unikatowego ograniczenia dla istniejącej tabeli

  1. W Eksploratorze obiektów , nawiąż połączenie z instancją silnika bazy danych.

  2. Na pasku standardowym wybierz pozycję Nowe zapytanie.

  3. 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 i PasswordSalt w tabeli Person.Password.

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

Tworzenie unikatowego ograniczenia dla nowej tabeli

  1. W Eksploratorze obiektów nawiąż połączenie z wystąpieniem silnika bazy danych.

  2. Na standardowym pasku wybierz Nowe zapytanie.

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

  1. W Eksploratorze Obiektów nawiąż połączenie z wystąpieniem silnika bazy danych.

  2. Na standardowym pasku wybierz pozycję Nowe zapytanie.

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