Если пользователи оставляют пустыми поля, не включая их в инструкцию INSERT или UPDATE, которую они применяют для добавления или модификации записи, для заполнения этих полей используются ограничения на умолчания. Существует два типа умолчаний: умолчания объектов и умолчания определений. Объектные умолчания определяются при создании таблицы и влияют только на столбец, в котором были определены. Умолчания определений создаются отдельно от таблиц и предназначены для привязки к типу данных, определяемому пользователем. Использование умолчаний может существенно сэкономить время при вводе данных.
Предположим, что основная клиентура проживает в Калифорнии, поэтому люди, вводящие данные, вынуждены вводить сокращение СА для каждого нового клиента. Если у вас обширная база клиентов, то ввод этих двух букв для каждого из них может отнять массу времени. При использовании ограничения на умолчания пользователи смогут намеренно оставлять поле State на откуп программе SQL Server. Чтобы продемонстрировать возможности ограничений на умолчания, мы создадим следующее определение в таблице Customers.
1. Откройте SQL Server Management Studio. В окне Object Explorer раскройте папки Databases=> Sales=> Tables=> dbo.Customers=> Columns.
2. Щелкните правой кнопкой мыши на столбце State и выберите команду Modify.
3. В нижней половине окна введите в текстовый блок Default Value Or Binding текст 'СА' (с одинарными кавычками). Если что, SQL Server поместит эти одинарные кавычки за вас (рис. 16).
Рис. 16. Создание умолчания для столбца
4. Щелкните на кнопке Save и выйдите из конструктора таблиц.
5. Чтобы протестировать умолчания, щелкните в SQL Server Management Studio на кнопке New Query. Выберите команду New SQL Server Query и выполните подключение с использованием аутентификации Windows.
6. Введите и выполните следующий код:
USE sales
INSERT customers (fname, lname, address, city, zip, phone)
7. Чтобы проверить, были ли введены буквы СА в поле State, выполните команду Query=>New Query.
8. Введите и выполните следующий код:
SELECT * FROM customers
9. Обратите внимание на то, что для записи Tom Smith в поле State есть аббревиатура штата СА, как показано ниже.
Вот и все, что требуется сделать для обеспечения доменной целостности. Вы можете использовать ограничения на проверку, чтобы принудить пользователей вводить правильные данные, а ограничение на умолчания будет заполнять поля данными, которые забыл ввести пользователь. Однако существует еще два метода обеспечения целостности. Далее мы рассмотрим, как не позволить пользователям дублировать записи путем обеспечения целостности сущности.