Vytvořte omezení kontroly
platí pro:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL Database v Microsoft Fabric
V tabulce můžete vytvořit omezení kontroly, které určuje hodnoty dat, které jsou přijatelné v jednom nebo více sloupcích SQL Serveru pomocí aplikace SQL Server Management Studio nebo jazyka Transact-SQL. Další informace o přidávání omezení sloupců naleznete v tématu ALTER TABLE column_constraint.
Další informace najdete v tématu Jedinečná omezení a kontrolní omezení.
Poznámky
Pokud chcete dotazovat existující omezení kontroly, použijte zobrazení sys.check_constraints systémového katalogu.
Dovolení
Vyžaduje oprávnění ALTER
na tabulce.
Použití aplikace SQL Server Management Studio
V Průzkumníku objektůrozbalte tabulku, ke které chcete přidat kontrolní omezení, klikněte pravým tlačítkem na Omezení a vyberte Nové omezení.
V dialogovém okně Kontrola omezení vyberte pole Výraz a potom vyberte tři tečky (...).
V dialogovém okně Check Constraint Expression zadejte výrazy SQL pro omezení kontroly. Pokud chcete například omezit položky ve sloupci
SellEndDate
tabulkyProduct
na hodnotu, která je větší nebo rovna datu ve sloupciSellStartDate
nebo jeNULL
hodnota, zadejte:SellEndDate >= SellStartDate
Pokud chcete, aby položky ve sloupci
zip
byly pěticiferné, zadejte:zip LIKE '[0-9][0-9][0-9][0-9][0-9]'
Poznámka
Nezapomeňte uzavřít všechny nečíselné hodnoty omezení do jednoduchých uvozovek (
'
).Vyberte OK.
V kategorii Identity můžete změnit název omezení kontroly a přidat popis (rozšířenou vlastnost) omezení.
V kategorii Návrhář tabulky můžete nastavit, kdy je uplatněno omezení.
Akce Pro následující možnosti vyberte Yes
.Otestujte omezení dat, která existovala před vytvořením omezení. Kontrola existujících dat při vytváření nebo aktivaci Vynucení omezení při každé operaci replikace v této tabulce Prosadit pro replikaci Vynucení omezení při každém vložení nebo aktualizaci řádku této tabulky Vynucení pro INSERT a UPDATE Vyberte Zavřít.
Použijte Transact-SQL
V Průzkumníku objektůse připojte k instanci databázového serveru.
Na panelu Standard vyberte Nový dotaz.
Zkopírujte a vložte následující příklad do okna dotazu a vyberte Spustit.
Nejprve vytvořte omezení.
ALTER TABLE dbo.DocExc ADD ColumnD INT NULL CONSTRAINT CHK_ColumnD_DocExc CHECK ( ColumnD > 10 AND ColumnD < 50 ); GO
Chcete-li otestovat omezení, nejprve přidejte hodnoty, které splňují omezující podmínku.
INSERT INTO dbo.DocExc (ColumnD) VALUES (49);
Dále se pokuste přidat hodnoty, které nesplní omezení kontroly.
INSERT INTO dbo.DocExc (ColumnD) VALUES (55);