Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Посібник Мова SQL кредитно-модульний.doc
Скачиваний:
35
Добавлен:
01.05.2015
Размер:
1.25 Mб
Скачать

Перегляд|проглядати|, видалення|віддалення|і відключення тригерів|трігерів|

При створенні|створінні|тригера|трігера|його ім'я і інші ідентифікаційні дані записуються|занотовують|в системну таблицюSysObjects|поточної бази даних. Текст тригера|трігера|записується|занотовує|в системну таблицюSysComments|. Наступний|слідуючий|операторSELECT|покаже всі тригери|трігери|, створені до таблиць бази данихBookShopDB|:

SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[alerter]') AND type in (N'TR')

Тригери|трігери|завжди помічені|позначити|в стовпці type|значенням ‘TR’|. Для виведення властивостей тригера|трігера|використовується системна процедураsp_helptrigger||, що зберігається. Наприклад, щоб|аби|вивести властивості всіх тригерів|трігерів|, визначених для таблиціauthors|, наберіть наступну|слідуючу|команду:

sp_helptrigger @tabname = employees

Щоб|аби|побачити вміст тригера|трігера|, необхідно зробити запит до стовпцяText|системної таблиціSysComments|. Системна збережена процедураsp_helptext|виводить інформацію в більш організованому вигляді|виді|. Наприклад, для виведення тексту тригера|трігера|alerter|наберіть наступну|слідуючу|команду:

sp_helptext @objnarne = alerter

При видаленні|віддаленні|тригера|трігера|інформація про нього віддаляється з|із|системних таблицьSysCommentsSysObjects|. Для видалення|віддалення|з|із|бази даних одного або декількох тригерів|трігерів|застосовують оператораDROP| TRIGGER|. Якщо віддаляється таблиця тригера|трігера|або його відображення|вистава|, то всі прив'язані до них тригери|трігери|також віддаляються. Щоб|аби|видалити|віддаляти|тригер|трігер|Alerter|з|із|бази даних|, наберіть наступну|слідуючу|команду:

USE Pubs

DROP TRIGGER [dbo].[alerter]

Щоб|аби|відключити|відключати|тригер|трігер|, скористайтеся операторомALTER| TABLE|. Наступна|слідуюча|команда відключає тригер|трігер|Alerter|в таблиціauthors|:

ALTER TABLE authors DISABLE TRIGGER alerter

Щоб|аби|відключити|відключати|всі прив'язані до таблиці тригери|трігери|, слід вказати ключове|джерельне|словоALL|після|потім|конструкціїDISABLE| TRIGGER|. Щоб|аби|включити один або декілька тригерів|трігери|, замініть ключове|джерельне|словоDISABLE|в операторовіALTER| TABLE|наENABLE|.

2. Програмування тригерів|трігерів| Псевдотаблиці Inserted|і Deleted|

При спрацьовуванні тригера|трігера|на подіїINSERT|, UPDATE|абоDELETE|створюється одна або декілька псевдотаблиць (також відомих як логічні таблиці). Можна розглядати|розглядати|логічні таблиці як журнали|часописи|транзакцій для події. Існує два типи логічних таблиць:Inserted| і Deleted|.Inserted|створюється в результаті|внаслідок|події додавання|добавляти|або оновлення даних. У ній знаходиться|перебуває|набір доданих|добавляти|або змінених записів.UPDATE-триггер|створює також логічну таблицюDeleted|. У ній знаходиться|перебуває|початковий|вихідний|набір записів в тому стані|достатку|, в якому він був до операції оновлення. Наступний|слідуючий|приклад|зразок|створює тригер|трігер|, який виводить вмістInserted| і Deleted|після|потім|подіїUPDATE|в таблиціAuthors|:

CREATE TRIGGER dbo.updatetables

ON dbo.authors

AFTER UPDATE

AS

SELECT ‘Description’ = ‘The Inserted table:’

SELECT * FROM inserted

SELECT ‘Description’ = ‘The Deleted table:’

SELECT * FROM deleted

Після|потім|виконання простого оператораUPDATE|, що змінює|зраджує|ім'я автора з|із|Dean|наDenby|, спрацьовує тригер|трігер|, який виводить наступні|слідуючі|результати:

The Inserted table:

Straight Denby Oakland CA 94009

The Deleted table:

Straight Dean Oakland CA 94B09