Образовательный проект «SnakeProject» Михаила Козлова

Навигация

⇒ SQL\T-SQL ⇐

CISCO

Voice(Asterisk\Cisco)

Microsoft

Powershell

Python

FreeBSD and Nix

Общая

WEB Разработка

ORACLE SQL \ JAVA

Мото

Стрельба, пневматика, оружие

Саморазвитие и психология


T-SQL 2014: Триггеры


USE test;
GO

--Триггер — это особая разновидность хранимой процедуры, выполняемая автоматически при возникновении события DML или DDL на сервере БД
--Событиями DML являются процедуры INSERT, UPDATE или DELETE
--Событиями DDL являются CREATE, ALTER, DROP

--Удаляем триггер, если он уже существует
IF OBJECT_ID ('dbo.triggerName') IS NOT NULL
    DROP TRIGGER dbo.triggerName;
GO

--Пример триггера на срабатывание после оператора UPDATE для таблицы data
CREATE TRIGGER dbo.triggerName
ON dbo.peoples
--FOR | AFTER
--Тип AFTER указывает, что триггер срабатывает только после успешного выполнения всех операций в инструкции SQL

--Если единственным заданным ключевым словом является FOR, аргумент AFTER используется по умолчанию
--Триггеры AFTER не могут быть определены на представлениях
--Возможные аргументы DML: INSERT, UPDATE, DELETE 

    AFTER UPDATE AS
BEGIN
   UPDATE dbo.peoples SET name = name + '_40', lastname = lastname + '_40'
END;
GO

--Смотрим изначальные данные
SELECT * FROM dbo.peoples

--Вносим изменения, после успешного выполнения сработает триггер, который изменит значения name и lastname
UPDATE dbo.peoples SET age = 40;

--Значение после отрабатывания триггера
SELECT * FROM dbo.peoples


--Использование триггера DDL уровня сервера
--Область действия в пределах сервера (ON ALL SERVER)

IF EXISTS (SELECT * FROM sys.server_triggers WHERE name = 'ddl_triggerName')
    DROP TRIGGER ddl_triggerName ON ALL SERVER;
GO

CREATE TRIGGER ddl_triggerName 
ON ALL SERVER 
FOR CREATE_DATABASE, DROP_DATABASE
AS 
    PRINT 'Database Mainipulated!'
GO

CREATE DATABASE test_trigger
DROP DATABASE test_trigger


Комментарии пользователей

Эту новость ещё не комментировалиНаписать комментарий
Анонимам нельзя оставоять комментарии, зарегистрируйтесь!

Контакты Группа ВК Сборник материалов по Cisco, Asterisk, Windows Server, Python и Django, SQL и T-SQL, FreeBSD и LinuxКод обмена баннерами Видео к IT статьям на YoutubeВидео на другие темы Смотреть
Мои друзья: Советы, помощь, инструменты для сис.админа, статическая и динамическая маршрутизация, FreeBSD

© Snakeproject.ru создан в 2013 году.
При копировании материала с сайта - оставьте ссылку.
Весь материал на сайте носит ознакомительный характер,
за его использование другими людьми, автор ответственности не несет.

Рейтинг@Mail.ru
Рейтинг@Mail.ru Яндекс.Метрика





Поддержать автора и проект