Megosztás a következőn keresztül:


Egyedi korlátozások létrehozása

Vonatkozik a következőkre: SQL Server 2016 (13.x) és későbbi verziók Azure SQL DatabaseAzure SQL Managed InstanceSQL database in Microsoft Fabric

Az SQL Serverben egyedi korlátozást hozhat létre az SQL Server Management Studióval vagy Transact-SQL, hogy ne legyenek ismétlődő értékek olyan oszlopokban, amelyek nem vesznek részt az elsődleges kulcsban. Az egyedi kényszerek létrehozása automatikusan létrehoz egy megfelelő egyedi indexet.

Note

Az Azure Synapse Analytics egyedi korlátairól további információért lásd: Elsődleges kulcs, idegen kulcs és egyedi kulcs az Azure Synapse Analytics.

engedélyek

Módosítási engedély szükséges a táblához.

az SQL Server Management Studio (SSMS) használata

Egyedi kényszer létrehozása az SSMS használatával

  1. Az Objektumkezelőkattintson a jobb gombbal arra a táblára, amelyhez egyedi korlátozást szeretne hozzáadni, és válassza a Tervezéslehetőséget.

  2. A Táblatervező menüben válassza Indexek/Kulcsoklehetőséget.

  3. Az Indexek/Kulcsok párbeszédpanelen válassza a Hozzáadáslehetőséget.

  4. Az Általánosalatti rácson válassza a Típus lehetőséget, majd a tulajdonság melletti legördülő listából válassza az Egyedi kulcs lehetőséget, végül válassza a Bezáráslehetőséget.

  5. A Fájl menüben válassza a Mentés táblanévparancsot.

Transact-SQL használata

Egyedi kényszer létrehozása Transact-SQL használatával

  1. Az Object Explorer-ben csatlakozzon az adatbázismotor egy példányához.

  2. A Standard sávon válassza Új lekérdezéslehetőséget.

  3. Másolja és illessze be a következő példát a lekérdezési ablakba, és válassza a Végrehajtáslehetőséget. A példa létrehozza a táblát TransactionHistoryArchive4, és létrehoz egy egyedi korlátozást a TransactionIDoszlopra.

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

Egyedi korlátozás létrehozása meglévő táblán

  1. Az Object Explorer-ben csatlakozzon az adatbázismotor egy példányához.

  2. A Standard sávon válassza Új lekérdezéslehetőséget.

  3. Másolja és illessze be a következő példát a lekérdezési ablakba, és válassza a Végrehajtáslehetőséget. A példa egyedi korlátozást hoz létre a tábla PasswordHashPasswordSalt és Person.Password oszlopaiban.

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

Egyedi korlátozás létrehozása új táblán

  1. Az Object Explorer-ben csatlakozzon az adatbázismotor egy példányához.

  2. A Standard sávon válassza Új lekérdezéslehetőséget.

  3. Másolja és illessze be a következő példát a lekérdezési ablakba, és válassza a Végrehajtáslehetőséget. A példa létrehoz egy táblát, és egyedi korlátozást határoz meg a TransactionIDoszlopon.

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

Egyedi kényszer létrehozása egy null értékeket is tartalmazó oszlopon

  1. Az Object Explorer-ben csatlakozzon az adatbázismotor egy példányához.

  2. A Standard sávon válassza Új lekérdezéslehetőséget.

  3. Másolja és illessze be a következő példát a lekérdezési ablakba, és válassza a Végrehajtáslehetőséget. A példa egy szűrt egyedi kényszert hoz létre a CREATE UNIQUE INDEX szintaxis használatával, amely csak a nemNULL értékek egyediségét kényszeríti ki.

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