Поделиться через


Создание ограничений проверки

применяется:sql ServerБазе данных SQL AzureУправляемому экземпляру SQL Azureбазе данных SQL в Microsoft Fabric

Можно создать ограничение проверки в таблице, чтобы указать допустимые значения данных в одном или нескольких столбцах SQL Server с помощью SQL Server Management Studio или Transact-SQL. Дополнительные сведения о добавлении ограничений столбцов см. на странице ALTER TABLE column_constraint.

Дополнительные сведения см. в разделе "Уникальные ограничения" и "Проверка ограничений".

Замечания

Чтобы запросить существующие ограничительные условия, используйте представление системного каталога sys.check_constraints.

Разрешения

Требуется ALTER разрешение на таблицу.

Использование SQL Server Management Studio

  1. В обозревателе объектов разверните таблицу, в которую необходимо добавить проверочное ограничение, щелкните правой кнопкой мыши пункт Ограничения и выберите команду Создать ограничение.

  2. В диалоговом окне Проверочные ограничения выберите поле Выражение, затем выберите многоточие (…).

  3. В диалоговом окне Выражение проверочного ограничения введите выражения SQL, соответствующие проверочному ограничению. Например, чтобы ограничить записи в SellEndDate столбце Product таблицы значением, превышающим или равным дате в SellStartDate столбце, или значением NULL , введите:

    SellEndDate >= SellStartDate
    

    Чтобы ограничить записи в столбце zip записями, состоящими из 5 цифр, введите следующее:

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

    Примечание.

    Не забудьте заключить любые нечисловые значения ограничений в одинарные кавычки (').

  4. Нажмите ОК.

  5. В категории Идентификация можно изменить имя проверочного ограничения и добавить описание (расширенное свойство) ограничения.

  6. В категории Конструктор таблиц можно задать время принудительного выполнения проверочного ограничения.

    Действие Выберите Yes для следующих параметров
    Проверить ограничение на данные, существовавшие до создания ограничения Проверить имеющиеся данные при создании или активации
    Принудительно применять ограничение при каждой операции репликации данной таблицы Применить обязательно для репликации
    Принудительно применять это ограничение при каждой вставке или обновлении строки таблицы Применять для вставки и обновления
  7. Выберите Закрыть.

Использование Transact-SQL

  1. В обозревателе объектов подключитесь к экземпляру ядра СУБД.

  2. На стандартной панели выберите пункт Создать запрос.

  3. Скопируйте приведенный ниже пример в окно запроса и нажмите кнопку Выполнить.

    Сначала создайте ограничение.

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

    Чтобы проверить ограничение, сначала добавьте значения, которые проходят проверку ограничением.

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

    Затем попытайтесь добавить значения, которые не соответствуют ограничению проверки.

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