Курсовая работа: Особенности разработки триггеров и хранимых процедур в СУБД

ALTER TABLE DAN_D ALL KOD_V_D FLOAT;

ALTER TABLE DAN_D ALL SLOJ_D FLOAT;

ALTER TABLE DAN_D ALL PAIK_D FLOAT ;

Следующий триггер срабатывает после удаления строки из таблицы NASH.

SET TERM ^;

CREATE TRIGGER DEL_NASH FOR NASH

ACTIVE AFTER DELETE POSITION 0

AS

BEGIN

UPDATE DAN_D

SET KOD_Z_D=OLD.KOD_Z, KOD_D_D=OLD.KOD_D,

KOD_V_D=OLD.KOD_V, SLOJ_D=OLD.SLOJ,

PAIK_D=OLD.PAIK

WHERE TAB_NO_D=OLD.TAB_NO;

END ^

SET TERM; ^

Теперь после команды

DELETE FROM DAN

WHERE TAB_NO=1012;

произойдет следующее:

1. Произойдет удаление строки с TAB_NO=1014 из таблицы DAN.

2. Сработает триггер DEL_DAN, который запишет удаленную строку в таблицу DAN_D.

3. Произойдет удаление строки с TAB_NO=1014 из таблицы NASH.

4. Сработает триггер DEL_NASH и допишет в, уже наполовину заполненную строку таблицы DAN_D, данные из таблицы NASH, соответствующие этому сотруднику (WHERE TAB_NO_D=OLD.TAB_NO).

Следующий триггер срабатывает после добавления строки в таблицу DAN и запускает хранимую процедуру, которая, в свою очередь, заполняет строку с таким же табельным номером (TAB_NO) в таблице начислений (NASH). Поскольку нельзя предугадать, какими будут начисления того или иного работника, по умолчанию поля таблицы NASH будут заполняться значениями соответствующими минимальным начислениям предприятия, которые потом, безусловно, следует изменить. Хранимая процедура, вызванная триггером, лишь предварительно заполняет таблицу NASH, как бы занимая место для нового сотрудника, уже занесенного в таблицу DAN.

SET TERM ^;

CREATE TRIGGER Z_NASH FOR DANNIE

ACTIVE AFTER INSERT POSITION 0

AS

К-во Просмотров: 401
Бесплатно скачать Курсовая работа: Особенности разработки триггеров и хранимых процедур в СУБД