ADD CONSTRAINT StudentIDGroupForeign
FOREIGN KEY (IDGroup) REFERENCES SGroup(IDGroup)
В этом случае независимо от содержания таблиц результат будет следующим.
The command(s) completed successfully.
Задание 9
Ввести ограничение на оценку в отношении Успеваемость. Оценка не должна превышать 5 баллов. Номер семестра не должен превышать 10.
Задание 10
Создать внешние ключи во всех таблицах, используя опцию Foreign Key, при этом установить опцию каскадного удаления там, где это необходимо.
Задание 11
Удалить первичный ключ в отношении Student.
Задание 12
Проследить за изменением ограничения Foreign key в отношениях, связанных с отношением Student. Еще раз восстановите все удаленные ограничения.
Отключение и подключение ограничений
Отключить можно как отдельное ограничение, указав его имя, так и все, используя опцию ALL
Синтаксис команды:
ALTER TABLE <имя таблицы>
[CHECK| NOCHECK]
{CONSTRAINT <имя ограничения>| ALL}
FOREIGN KEY [REFERENCES<имя таблицы> (<имя столбца> [,…n])] | CHECK (<имя столбца> [,…n])}
Пример 25
Задача.
Отключить все ограничения в таблице Progress.
|
|
Решение.
ALTER TABLE Progress
NOCHECK CONSTRAINT ALL
Пример 26
Задача.
Подключить все ограничения в таблице Progress.
Решение.
ALTER TABLE Progress
CHECK CONSTRAINT ALL
Пример 27
Задача.
Отключить ограничение в ProgressMarkCheсk для столбца Mark таблицы Progress.
Решение.
ALTER TABLE Progress
NOCHECK CONSTRAINT ProgressMarkCheсk
После выполнения последней команды вы сможете ввести, например, 1 (единицу) в столбец Mark. Если Вы не намерены проверять ранее введенные данные, то синтаксис команды должен быть аналогичным синтаксису следующего примера (см. Пример 28), в противном случае синтаксис команды должен быть аналогичен следующему примеру (см. Пример 29)
Пример 28
Задача.
Подключить ограничение в ProgressMarkCheck для столбца Mark таблицы Progress.
Решение.
ALTER TABLE Progress
СHECK CONSTRAINT ProgressMarkCheck
Пример 29
Задача.
Подключить ограничение в ProgressMarkCheck для столбца Mark таблицы Progress и проверить корректность всех ранее введенных значений на соответствие этому ограничению.
Решение.
ALTER TABLE Progress