Организация бизнес-логики информационной системы на стороне сервера: Триггеры

Страницы работы

4 страницы (Word-файл)

Содержание работы

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

Организация бизнес-логики ИС на стороне сервера

Триггеры.

Создадим 3 триггера, на различные события (добавление, изменение, удаление):

CREATE TRIGGER JournalINS ON [dbo].[ispolnenie]

FOR INSERT AS

IF @@ROWCOUNT=1

BEGIN

INSERT INTO journal Values ('Добавление',CURRENT_TIMESTAMP,CURRENT_USER)

END

CREATE TRIGGER JournalUP ON [dbo].[ispolnenie]

FOR UPDATE AS

IF @@ROWCOUNT=1

BEGIN

INSERT INTO journal Values ('Изменение',CURRENT_TIMESTAMP,CURRENT_USER)

END

CREATE TRIGGER JournalDEL ON [dbo].[ispolnenie]

FOR DELETE AS

IF @@ROWCOUNT=1

BEGIN

INSERT INTO journal Values ('Удаление',CURRENT_TIMESTAMP,CURRENT_USER)

END

Запросы для триггеров:

INSERT INTO [IT52_Tash].[dbo].[ispolnenie]([id_person],[id_style],[id_alb])

VALUES(5,2,3)

UPDATE [IT52_Tash].[dbo].[ispolnenie]

SET id_style=7

WHERE id_play=12

DELETE FROM [IT52_Tash].[dbo].[ispolnenie]

WHERE id_play=12

Таблица journal с отчетами об изменениях:


Триггер, проверяющий введённые значения произведения, исполнителя или стиля на наличие их в соответствующих таблицах

CREATE TRIGGER  checkINS

ON [dbo].[ispolnenie] FOR INSERT AS

IF @@ROWCOUNT=1

BEGIN

IF NOT EXISTS(SELECT * FROM inserted

WHERE (inserted.id_person in (SELECT id_play FROM person) AND inserted.id_style in (SELECT id_play FROM style) AND inserted.id_alb in (SELECT id_play FROM album) ))

BEGIN

ROLLBACK TRAN

PRINT 'Ошибка!!'

END

END

Результат запроса:

Триггер, проверяющий изменяемые значения произведения, исполнителя или стиля на наличие их в соответствующих таблицах

CREATE TRIGGER  checkUpDate

ON [dbo].[ispolnenie] FOR UPDATE AS

IF @@ROWCOUNT=1

BEGIN

IF NOT EXISTS(SELECT * FROM inserted

WHERE (inserted.id_person in (SELECT id_play FROM person) AND inserted.id_style in (SELECT id_play FROM style) AND inserted.id_alb in (SELECT id_play FROM album) ))

BEGIN

ROLLBACK TRAN

PRINT 'Данные невозможно изменить!!'

END

END

Результат запроса:

Похожие материалы

Информация о работе