Эта секция описывает типы ограничений. Синтаксис, примеры и рассуждения об использования каждого ограничения.
Ограничение DEFAULT помещает значение в колонку, когда оно не было указано в операторе INSERT.
Следующий пример добавляет ограничение DEFAULT, которое добавляет значение unknown в поле ContactName:
USE Northwind
ALTER TABLE dbo.Customers
ADD CONSTRAINT DF_contactname DEFAULT 'unknown' FOR ContactName
Рассматривайте следующие факты об ограничении DEFAULT:
Оно проверяет наличие данных в таблице;
Оно относится только к оператору INSERT;
Только одно DEFAULT ограничение может быть назначено колонке;
Оно не может быть назначено колонке со свойством Identity или на колонку с типом данных rowversion.
Оно поддерживает некоторые значения предоставляемые системой – USER, CURRENT_USER, SESSION_USER, SYSTEM_USER или CURRENT_TIMESTAMP которые могут быть заменены вместо значений объявленных пользователем. Эти значения могут использоваться для определения того, кто добавил строку.
Ограничение CHECK ограничивает данные, которые пользователь может ввести в определённую колонку указанными значениями. Ограничение CHECK похоже на оператор WHERE, в котором вы можете указать рамки, в которым могут быть введены данные.
Следующий пример добавляет ограничение CHECK чтобы гарантировать, что день рождения соответствует определённому промежутку времени:
USE Northwind
ALTER TABLE dbo.Employees
ADD
CONSTRAINT CK_birthdate
CHECK (BirthDate>’01-01-1900’ AND BirthDate<getdate())
Рассматривайте следующие факты об ограничении CHECK:
Оно проверяет каждый раз, когда вы выполняете операторы INSERT или UPDATE;
Вы можете ссылаться на другие колонки этой таблицы;
Оно не может быть назначено колонке с типом данных rowversion;
Оно не может иметь подзапросов;
Если какие-нибудь данные сгенерировали ограничение CHECK, вы можете использовать оператор DBCC CHECKCONSTRAINT для получения ошибочных строк.
Ограничение PRIMARY KEY определяет первичный ключ таблицы, который уникально идентифицирует строку. Это гарантирует целостность таблицы.
Следующий пример добавляет ограничение, которое указывает, что значение главного ключа – это идентификационный номер потребителя и указывает на использования не кластерного ключа для гарантирования целостности:
USE Northwind
ALTER TABLE dbo.Employees
ADD
CONSTRAINT PK_Customers
PRIMARY KEY NONCLUSTERED (CustomerID)
Рассматривайте следующие факты об ограничении PRIMARY KEY:
Только одно ограничение первичного ключа может быть назначено в таблице;
Вводимые значения должны быть уникальны для колонки;
Нулевые значения недопустимы;
Оно создаёт уникальный индекс для колонки. Вы можете указать кластерный или не кластерный индекс.
Ограничение UNIQUE (уникальность) указывает, что две строки в колонке не могут содержать одно и тоже значение. Это ограничение обеспечивает целостность таблицы с уникальным индексом. Ограничение уникальности эффективно, когда вы уже имеете первичный ключ, но хотите гарантировать, что другой идентификатор (колонка) тоже уникален.
Следующий пример создаёт ограничение уникальности на название компании:
USE Northwind
ALTER TABLE dbo.Supplies
ADD
CONSTRAINT U_CompanyName
UNIQUE NONCLUSTERED (CompanyName)
Рассматривайте следующие факты об ограничении UNIQUE:
Оно позволяет одно нулевое значение;
Вы можете поместить несколько ограничений уникальности в таблицу;
Вы можете назначить ограничение уникальности одной или нескольким колонкам, которые должны иметь уникальные значения, но не являются первичным ключом;
Ограничение UNIQUE гарантирует во время создание уникального индекса на указанную колонку или колонки.
Ограничение FOREIGN KEY (вторичный ключ) гарантирует ссылочную целостность. Ограничение вторичного ключа определяет ссылку на колонку с первичным ключом или уникальную колонку в этой или другой таблице.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.