Dela via


Skapa kontrollbegränsningar

gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-databas i Microsoft Fabric

Du kan skapa en kontrollbegränsning i en tabell för att ange de datavärden som är godtagbara i en eller flera kolumner i SQL Server med hjälp av SQL Server Management Studio eller Transact-SQL. Mer information om hur du lägger till kolumnbegränsningar finns i ALTER TABLE column_constraint.

Mer information finns i Unika begränsningar och kontrollbegränsningar.

Anmärkningar

För att fråga om befintliga kontrollbegränsningar, använd systemkatalogvyn sys.check_constraints.

Behörigheter

Kräver ALTER behörigheter för tabellen.

Använda SQL Server Management Studio

  1. I Object Explorerexpanderar du tabellen som du vill lägga till en kontrollbegränsning i, högerklickar på Begränsningar och väljer Ny begränsning.

  2. I dialogrutan Kontrollera begränsningar väljer du i fältet Uttryck och sedan väljer du ellipsen (...).

  3. I dialogrutan Kontrollvillkorsuttryck skriver du SQL-uttrycken för kontrollvillkoret. Om du till exempel vill begränsa posterna i kolumnen SellEndDate i tabellen Product till ett värde som antingen är större än eller lika med datumet i kolumnen SellStartDate eller är ett NULL värde skriver du:

    SellEndDate >= SellStartDate
    

    Om du vill kräva att poster i kolumnen zip ska vara fem siffror skriver du:

    zip LIKE '[0-9][0-9][0-9][0-9][0-9]'
    

    Anteckning

    Se till att omsluta icke-numeriska villkorsvärden inom enkla citattecken (').

  4. Välj OK.

  5. I kategorin Identity kan du ändra namnet på kontrollvillkoret och lägga till en beskrivning (utökad egenskap) för villkoret.

  6. I kategorin Table Designer kan du ange när villkoret tillämpas.

    Åtgärd Välj Yes för följande alternativ
    Testa begränsningen för data som fanns innan du skapade villkoret kontrollera befintliga data när du skapar eller aktiverar
    Framtvinga villkoret när en replikeringsåtgärd inträffar i den här tabellen Framtvinga för replikering
    Framtvinga villkoret när en rad i den här tabellen infogas eller uppdateras Tillämpa för INSERTs och UPDATEs
  7. Välj Stäng.

Använd Transact-SQL

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

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

  3. Kopiera och klistra in följande exempel i frågefönstret och välj Kör.

    Skapa först villkoret.

    ALTER TABLE dbo.DocExc
    ADD ColumnD INT NULL CONSTRAINT CHK_ColumnD_DocExc CHECK (
        ColumnD > 10
        AND ColumnD < 50
    );
    GO
    

    Om du vill testa villkoret lägger du först till värden som klarar kontrollvillkoret.

    INSERT INTO dbo.DocExc (ColumnD) VALUES (49);
    

    Försök sedan att lägga till värden som inte uppfyller kontrollvillkoret.

    INSERT INTO dbo.DocExc (ColumnD) VALUES (55);