Skapa kontrollbegränsningar
gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-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
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.
I dialogrutan Kontrollera begränsningar väljer du i fältet Uttryck och sedan väljer du ellipsen (...).
I dialogrutan Kontrollvillkorsuttryck skriver du SQL-uttrycken för kontrollvillkoret. Om du till exempel vill begränsa posterna i kolumnen
SellEndDate
i tabellenProduct
till ett värde som antingen är större än eller lika med datumet i kolumnenSellStartDate
eller är ettNULL
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 (
'
).Välj OK.
I kategorin Identity kan du ändra namnet på kontrollvillkoret och lägga till en beskrivning (utökad egenskap) för villkoret.
I kategorin Table Designer kan du ange när villkoret tillämpas.
Åtgärd Välj Yes
för följande alternativTesta 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 Välj Stäng.
Använd Transact-SQL
I Object Exploreransluter du till en instans av databasmotorn.
I standardfältet väljer du Ny fråga.
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);