[ NOT FOR REPLICATION ] – если конструкция указана, то ограничение не проверяется при вставке или обновлении данных в момент репликации; если конструкция пропущена –ограничение проверяется.
Примеры команд будут приведены для простейшей таблицы Employees, которая выглядит следующим образом:
Для обновления существующего проверочного ограничения используется конструкция ALTER TABLE. Для изменения доступны только следующие свойства:
Check Existing Data On Creation Or Re-Enabling
Enforce For INSERTs And UPDATEs
Опциональныесекции: [ WITH { CHECK | NOCHECK } ] – в случае отсутствия применяется значение WITH NOCHECK
[,…n]– позволяет задать имя более чем одного ограничения, к которым будут применены изменения; использование слова ALL изменения применятся ко всем проверочным ограничениям на таблице. [1]
Удаление существующего CHECK CONSTRAINT
Команда очень проста и не требует дополнительных объяснений. Ещё шаблон:
Ограничение по умолчанию (DEFAULT)
Дополнительным механизмом использования значений по умолчанию являются объекты базы данных, созданные командой:
CREATE DEFAULT имя_умолчания AS константа
Умолчание связывается с тем или иным столбцом какой-либо таблицы с помощью процедуры:
sp_bindefault [@defname=] 'default', [@objname=] 'object_name' [,[@futureonly=] 'futureonly_flag'], где
'object_name'
может быть представлен как 'имя_таблицы.имя_столбца'
Удаление ограничения по умолчанию выполняется командой DROP DEFAULT {имя_умолчания} [,...n]
если предварительно это ограничение было удалено из всех таблиц процедурой
sp_unbindefault [@objname=] 'object_name' [,[@futureonly=] 'futureonly_flag'] [1] Примеры Пусть создана таблица без ограничений:
CREATE TABLE Товар
(КодТовара INT, Название VARCHAR(20), Тип VARCHAR(20),
Дата DATETIME, Цена MONEY, Остаток INT)
Рассмотрим примеры внесения в таблицу всевозможных ограничений.
ПримерПоле КодТовара необходимо сделать первичным ключом.Выполнение следующей команды будет отвергнуто, поскольку поле КодТовара допускает внесение значений NULL.
ALTER TABLE Товар ADD CONSTRAINT pk1
PRIMARY KEY(КодТовара)
Сначала нужно изменить объявление столбца КодТовара, запретив внесение значений NULL:
ALTER TABLE Товар
ALTER COLUMN КодТовара INT NOT NULL
И только потом создать ограничение первичного ключа:
ALTER TABLE Товар ADD CONSTRAINT pk1
PRIMARY KEY(КодТовара)