Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Разработка триггеров

Автор:   •  Ноябрь 27, 2018  •  Лабораторная работа  •  714 Слов (3 Страниц)  •  372 Просмотры

Страница 1 из 3

Лабораторная работа 5. Разработка триггеров.

Для реализации приложения «Mishka Food» необходимо разработать следующие триггеры:

  1. С опцией insert. Запрет на добавление нового заказа, в котором выявлены следующие ограничения:
  • Количество порций не должно равняться нулю;
  • Дата приема заказа должна совпадать с текущей датой;
  • Дата выдачи заказа не должна быть меньше даты приема заказа.

CREATE TRIGGER ZapolZakaza

ON Заказ

FOR INSERT AS

BEGIN

        IF ((SELECT [Количество порций] FROM inserted) = 0)

                BEGIN

                RAISERROR('Количество порций введено некоректно!',1,11)

                ROLLBACK TRAN

                END

        IF (SELECT [Дата приема заказа] FROM inserted)) <> (SELECT GETDATE())

        BEGIN

                RAISERROR('Дата приема заказа введена не корректно! Дата приема заказа несовподает с текущей датой!',1,11)

                ROLLBACK TRAN

                END

        IF        ((SELECT [Дата выдачи заказа] FROM inserted) <(SELECT [Дата приема заказа] FROM inserted))

        BEGIN

                RAISERROR('Дата выдачи заказа введена не корректно! Дата выдачи заказа не должна быть ранее даты приема заказа!',1,11)

                ROLLBACK TRAN

                END

        END

GO

[pic 1]

Рисунок 1. Триггер на ограничение добавления заказа

[pic 2]

Рисунок 2. Работа триггера на неправильный ввод количества порций

[pic 3]

Рисунок 3. Работа триггера на неправильный ввод даты приема заказа

[pic 4]

Рисунок 4. Работа триггера на неправильный ввод даты выдачи заказа

Работа триггера на правильный ввод данных:

[pic 5]

Рисунок 5. Работа триггера на правильный ввод количества порций

[pic 6]

Рисунок 6. Работа триггера на правильный ввод даты приема заказа

[pic 7]

Рисунок 7. Работа триггера на правильный ввод даты выдачи заказа

  1. С опцией update. Запрет на изменение в заказе кода клиента.

CREATE TRIGGER IzmenaZakaza

ON Заказ

AFTER UPDATE AS

BEGIN

        SET NOCOUNT ON;

        IF UPDATE ([Код клиента])

        PRINT 'Запрещено изменять код клиента!'

        ROLLBACK 

END

GO

[pic 8]

Рисунок 5. Триггер на ограничение изменения заказа

[pic 9]

Рисунок 6. Работа триггера

  1. С опцией delete. Запрет на удаление заказа из базы.

CREATE TRIGGER DelZakaz

ON Заказ

AFTER DELETE

AS

IF (SELECT [Код заказа] FROM deleted) IS NOT NULL

BEGIN

RAISERROR('Из базы запрещено удалять заказ!',1,11)

ROLLBACK TRAN

END

GO

[pic 10]

Рисунок 7. Триггер на запрет удаления заказа

[pic 11]

Рисунок 8. Работа триггера

  1. Триггеры after или for. Запрет на изменение даты приема заказа.

CREATE TRIGGER IzmenaZakazaDataPriema

ON Заказ

AFTER UPDATE AS

BEGIN

        SET NOCOUNT ON;

...

Скачать:   txt (5.7 Kb)   pdf (1.2 Mb)   docx (328.2 Kb)  
Продолжить читать еще 2 страниц(ы) »
Доступно только на Essays.club