- •Триггеры insert
- •Триггеры delete
- •3. В нашем случае триггер будет выглядеть следующим образом:
- •5. Далее сохраняем триггер, щелкнув по кнопке Save
- •Триггеры update.
- •3. В нашем случае триггер будет выглядеть следующим образом:
- •5. Далее сохраняем триггер, щелкнув по кнопке Save
- •3. В нашем случае триггер будет выглядеть следующим образом:
- •5. Далее сохраняем триггер, щелкнув по кнопке Save
- •Триггеры instead of
- •3. В нашем случае триггер будет выглядеть следующим образом:
- •Insert sotrydnik
- •5. Далее сохраняем триггер, щелкнув по кнопке Save
- •Расширенные технологии.
- •3. В нашем случае триггер будет выглядеть следующим образом:
- •5. Далее сохраняем триггер, щелкнув по кнопке Save
- •Insert sotrydnik
- •Values (‘s28’,’Петров’,’Валерий’,’Михайлович’,’10000’,’2’,’1’)
- •Формирование сообщений об ошибках. Функция raiserror().
- •3. В нашем случае триггер будет выглядеть следующим образом:
- •5. Далее сохраняем триггер, щелкнув по кнопке Save
- •Триггеры ddl.
3. В нашем случае триггер будет выглядеть следующим образом:
DECLARE
@TAB_NOM VARCHAR(20),
@FAM VARCHAR(20),
@NAME VARCHAR(20),
@OTCH VARCHAR(20),
@OKLAD VARCHAR(20),
@TELEFON VARCHAR(20)
SET @TAB_NOM VARCHAR(20),
SET @FAM VARCHAR(20),
SET @NAME VARCHAR(20),
SET @OTCH VARCHAR(20),
SET @OKLAD VARCHAR(20),
Insert sotrydnik
VALUES (@TAB_NOM, @FAM, @NAME, @OTCH, @OKLAD, @TELEFON)
4. Выполняем триггер, нажав на кнопку , на панели инструментов. В результате в нижней части экрана мы увидим строчку «Command(s)completedsuccessfully».
5. Далее сохраняем триггер, щелкнув по кнопке Save
6. Удостоверимся в работе триггера, для этого создадим запрос, нажав на кнопку New Query , следующего содержания
USE SOTRYDNIK
INSERT PHX_SOTRYDNIK
VALUES (‘S40’,’Иванов’,’Алексей’,’Юрьевич’,’33000’,’89152367896’)
Ошибок НЕ произошло, данная запись была успешна вставлена.
Расширенные технологии.
Данные технологии позволяют использовать триггеры INSERT,UPDATE, DELETEвместе, что повышает производительность БД.
пример: допустим, у нас есть таблица «Sotrydnik» БД “Ludi”. Необходимо создать триггер, который будет запрещать вставлять данные о сотруднике с окладом менее 20000 рублей и запрещать удалять записи о сотрудниках, оклад которых превышает 50000 рублей.
1. Открыть SQL Server Management Studio. В окне Object ExplorerразвернутьпапкуБД «Ludi” - Programmability – Triggers.
2. Щелкаем правой кнопкой мыши на папке Triggersи выбираем командуNewTriggers.
3. В нашем случае триггер будет выглядеть следующим образом:
CREATE TRIGGER primer5
ON sotrydnik
AFTER INSERT,DELETE
AS
BEGIN
SET NOCOUNT ON;
begin
if (select oklad from inserted)<'20000'
rollback
print'Нельзя вставлять запись о сотруднике, с окладом менее 20 000 рублей’
end
begin
if (select oklad from deleted)>='50000'
print'Нельзя удалять запись о сотрудике, оклад которого более 50000'
rollback
END
END
GO
4. Выполняем триггер, нажав на кнопку , на панели инструментов. В результате в нижней части экрана мы увидим строчку «Command(s)completedsuccessfully».
5. Далее сохраняем триггер, щелкнув по кнопке Save
6. Чтобы протестировать новый триггер, необходимо создать запрос, нажав на кнопку New Query , следующего содержания
USE LUDI
DELETE SOTRYDNIK
WHERE OKLAD=’55000’
Выполняем запрос, щелкнув по кнопке , в нижней части окна увидим сообщение об ошибке:
Нельзя удалять запись о сотруднике, с окладом более 50000’
Создадим запрос, нажав на кнопку New Query , следующего содержания
USE LUDI
Insert sotrydnik
Values (‘s28’,’Петров’,’Валерий’,’Михайлович’,’10000’,’2’,’1’)
Выполняем запрос, щелкнув по кнопке , в нижней части окна увидим сообщение об ошибке, что такую запись вставлять нельзя.
Т.е. получается, что вы можете комбинировать триггеры, имеет смысл использовать один объединенный, вместо двух отдельных.
Формирование сообщений об ошибках. Функция raiserror().
Данная функция позволяет формировать сообщение об ошибках.
Формат:
RAISERROR(‘Сообщение’, степень_серьезности, состояние)
Параметр ‘Сообщение’ – это текст, который будет читать пользователь при нарушении правил триггера.
Параметр ‘степень_серьезности’ указывает системе минимальный уровень серьезности ошибки.
Ошибкам можно задавать разную степень серьезности, начиная с 1 и заканчивая 25(самая критическая ошибка).
Параметр состояние используется в том случае, если отдельная ошибка была вызвана из нескольких точек триггера.
пример: допустим, у нас есть таблица «Sotrydnik» БД “Ludi”. Необходимо запретить удалять запись о сотруднике оклад которого более 50000 рублей.
1. Открыть SQL Server Management Studio. В окне Object ExplorerразвернутьпапкуБД «Ludi” - Programmability – Triggers.
2. Щелкаем правой кнопкой мыши на папке Triggersи выбираем командуNewTriggers.
