Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Триггеры.docx
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
53 Кб
Скачать
☆

3. В нашем случае триггер будет выглядеть следующим образом:

 

IF (SELECT OKLAD FROM DELETED)=’50000’

BEGIN

RASEERROR(‘Нельзя удалять запись о сотруднике, с окладом более 50000’,10,1)

ROLLBACK

END

4. Выполняем триггер, нажав на кнопку   

на панели инструментов. В результате в нижней части экрана мы увидим строчку «Command(s) completedsuccessfully».

5. Далее сохраняем триггер, щелкнув по кнопке Save

6. Чтобы протестировать новый триггер, необходимо создать запрос, нажав на кнопку New Query  , следующего содержания

 

USE LUDI

DELETE SOTRYDNIK

WHERE OKLAD=’55000’

 

Выполняем запрос, щелкнув по кнопке  , в нижней части окна увидим сообщение об ошибке cтекстом - Нельзя удалять запись о сотруднике, с окладом более 50000.

 

Триггеры ddl.

 

В начале статьи упоминалось о том, что триггеры DDLприменются для инструкций CREATE, ALTER, DROP и т.д.

 

пример: создадим триггер, который предотвратит удаление или изменение таблиц в БД.

 

1. Создадим запрос, нажав на кнопку New Query  ,

следующего содержания:

 

USE LUDI

GO

CREATE TRIGGER CANTDROPSOTRYDNIK

ON DATABASE

FOR DROP_TABLE, ALTER_TABLE

AS

PRINT ‘Вы не можете удалять или изменять БД’

ROLLBACK

 

2. Проверим созданный триггер. Создадим запрос, нажав на кнопку New Query  ,

следующего содержания:

DROP_TABLES SOTRYDNIK

 

3. Вы увидите сообщение об ошибке:

Вы не можете удалять или изменять БД

 

Итак, в этой статье, мы рассмотрели основные виды триггеров, которые повышают производительность БД и «облегчают жизнь программистам»