Скачиваний:
38
Добавлен:
28.06.2014
Размер:
358.67 Кб
Скачать

Лабораторная работа № 9

Выполнили: Заварзин Е.В.

Мигачев Д.А.

Задание 1:

Создать триггер на проверку правильности ввода значений в одно из полей вашей информационной таблицы: «Год приема» (значения от ‘00’ до ‘99’), «Год окончания» (значения от ‘00’ до ‘99’), «Код категории обучения» (значения от ’01’ до ‘17’), «Код семейного положения» (значения от ‘0’ до ‘3’); значения этих полей должны быть заданы в отдельной таблице вашей БД;

Создаем таблицу, содержащую валидные года приема:

Триггер, проверяющий валидность года приема:

create trigger god_postupl_check on mold

for insert, update as

if (select count(*) from goda_priema,inserted

where (inserted.gp=goda_priema.god))=0

SELECT ДОБАВЛЕНАЯ ЗАПИСЬ СОДЕРЖИТ ОШИБКУ: Год приема должен быть между 00 и 99'

Задание 2:

Создать 3 отдельных триггера (для операторов INSERT, UPDATE и DELETE) для автоматического внесения изменений в таблицу VUZ (поля «Код вуза» и «Название вуза»), если вносятся такие же изменения в таблицу VUZ_GOROD.

CREATE TRIGGER vuz_insert ON vuz_gorod

FOR INSERT AS

BEGIN

INSERT vuz (cod,uch_zavedenie)

select cod_vuza,nazvanie_vuza from inserted

END

2)

alter TRIGGER vuz_delete ON vuz_gorod

FOR delete AS

BEGIN

delete vuz

from vuz,deleted

where

deleted.cod_vuza=vuz.cod

END

3)

alter TRIGGER vuz_update ON vuz_gorod

FOR update AS

BEGIN

update vuz

set vuz.cod=ins.cod_vuza,vuz.uch_zavedenie=ins.nazvanie_vuza

from deleted del, vuz,inserted ins

where

(del.cod_vuza=vuz.cod)

END

4)

Alter TRIGGER Gorod_insert ON vuz_gorod

FOR INSERT AS

BEGIN

if (select count(*) from inserted, gorod where inserted.nazvanie_goroda=gorod.nazvanie_goroda )= 0

INSERT gorod (cod, nazvanie_goroda)

select cod_goroda,nazvanie_goroda FROM inserted

END

Соседние файлы в папке Мигачев,Заварзин