Ограничение на проверку представляет собой инструкцию Transact-SQL связывания с полем. Ограничения на проверку используются для ограничения данных, принимаемых полем, даже если они имеют корректный тип. Например, поле Zip таблицы Customers имеет тип nchar, т.е. чисто теоретически оно может принимать буквы. Это может стать проблемой, поскольку не существует почтовых индексов с буквами. Поэтому вам нужно не позволять пользователям вводить в это поле буквы. Далее описано, как создать ограничение на проверку, выполняющее эту задачу.
1. В окне Object Explorer раскройте папки базы данных Sales и найдите в папке
Tables таблицу dbo. Customers.
2. Щелкните правой кнопкой на папке Constraints и выберите команду New Constraint.
3. Введите в текстовый блок (Name) диалогового окна New Constraint имя CK_Zip.
4. В текстовый блок Description введите описание Check for valid zip codes.
5. Чтобы создать ограничение, принимающее пять чисел, которыми могут быть только цифры от 0 до 9, в текстовый блок Expression введите следующий код (рис. 14):
(zip like '[0-9][0-9][0-9][0-9][0-9]')
6. Щелкните на кнопке Close.
7. Щелкните на кнопке Save в левой верхней части панели инструментов.
8. Закройте конструктор таблиц (он был открыт, когда вы начали создавать ограничение).
Рис. 14. Ввод ограничения на проверку данных
Чтобы протестировать созданное вами ограничение, введем в таблицу несколько новых записей, используя инструкцию INSERT.
1. В SQL Server Management Studio щелкните на кнопке New Query и выберите команду New Disigner. В случае чего подключитесь к серверу с использованием аутентификации Windows.
3. Щелкните на кнопке Execute, чтобы выполнить запрос, и просмотрите полученные результаты (рис. 15).
4. Чтобы просмотреть новую запись, введите и выполните следующий код:
SELECT * FROM customers
6. Обратите внимание на то, что появилась запись со значением 1 в столбце CustID (поскольку свойство identity, описанное ранее, будет автоматически добавлять номер для новой строки).
7. Чтобы протестировать ограничение на проверку путем добавления символов в поле Zip, выполните команду Query=>New Query.
8. В окне запроса введите следующий код и обратите внимание на ввод букв в поле Zip:
Ограничения на проверку могут стать сильным союзником в борьбе с вводом неправильных данных. Вам всего лишь нужно определить, какие данные принадлежат столбцу, и создать ограничение, указывающее SQL Server не принимать других
Рис. 15. Из семи вводимых полей ограничение "проверило на корректность” только одно
данных. Ограничения на проверку бесполезны, когда пользователи забывают ввести данные в столбец. Для этого существуют ограничения на умолчания.