Sdílet prostřednictvím


Vytvořte omezení kontroly

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL 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

  1. 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í.

  2. V dialogovém okně Kontrola omezení vyberte pole Výraz a potom vyberte tři tečky (...).

  3. V dialogovém okně Check Constraint Expression zadejte výrazy SQL pro omezení kontroly. Pokud chcete například omezit položky ve sloupci SellEndDate tabulky Product na hodnotu, která je větší nebo rovna datu ve sloupci SellStartDate nebo je NULL 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 (').

  4. Vyberte OK.

  5. V kategorii Identity můžete změnit název omezení kontroly a přidat popis (rozšířenou vlastnost) omezení.

  6. 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
  7. Vyberte Zavřít.

Použijte Transact-SQL

  1. V Průzkumníku objektůse připojte k instanci databázového serveru.

  2. Na panelu Standard vyberte Nový dotaz.

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