Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
23
Добавлен:
01.05.2014
Размер:
526.34 Кб
Скачать

Элементы языка SQL

Работа с хранимыми процедурами

Оператор EXIT

Оператор EXIT инициирует прекращение выполнения процедуры и выход в вызывающее приложение.

Пример:

CREATE PROCEDURE MAX_VALUE ( А INTEGER, B INTEGER ) RETURNS ( M_V INTEGER ) AS

DECLARE VARIABLE TMP INTEGER; BEGIN

IF ( :A IS NULL OR :B IS NULL ) THEN EXIT; IF ( :A > :B ) THEN M_V = :A ;

ELSE M_V = :B ; END

Элементы языка SQL

Работа с хранимыми процедурами

Оператор EXECUTE PROCEDURE

Оператор вызова другой хранимой процедуры:

EXECUTE PROCEDURE имя [параметр [, параметр … ] ] ; [ RETURNING_VALUES параметр [, параметр … ] ];

Пример:

EXECUTE PROCEDURE AVG_KOLVO (:IN_TOVAR) RETURNING_VALUE :AVG_KOLVO_TOVAR;

Элементы языка SQL

Работа с хранимыми процедурами

Оператор POST_EVENT

Оператор применяется для посылки сервером клиентским приложениям сообщения о наступлении какой либо ситуации, связанной с именем события.

POST_EVENT “Имя события”;

Элементы языка SQL

Работа с хранимыми процедурами

Изменение и удаление ХП

Изменение ХП:

ALTER PROCEDURE ИмяПроцедур

[ ( входной_параметр тип_данных [, входной_параметр тип_данных … ] ) ] [ RETURNS

( выходной_параметр тип_данных [ , выходной_параметр тип_данных … ] ) ] AS

< тело процедуры>

Удаление ХП:

DROP PROCEDURE ИмяПроцедуры;

Элементы языка SQL

Работа с триггерами

Общие понятия

Триггер – это процедура в БД, автоматически вызываемая SQL-сервером при обновлении, удалении или добавлении новой записи в таблицу БД.

По событию изменения триггеры различают на вызываемые при:

Добавлении новой записи

Изменении существующей записи

Удалении записи

По отношению к событию, влекущему их вызов, триггеры различаются на:

Выполняемые до наступления события

Выполняемы после наступления события

Элементы языка SQL

Работа с триггерами

Общие понятия

Особенности:

Непосредственно обратиться к триггеру нельзя

Нельзя передавать параметры и получать значения выходных параметров

Триггер всегда реализует действие

Преимущества использования триггеров:

Автоматическое обеспечение каскадных воздействий, выполняющихся на сервере.

Изменения в триггерах не влекут необходимости изменения клиентских приложений.

Обязательное выполнение бизнес-правил, реализованных с использованием триггеров для всех приложений работающих с БД.

Все изменения вносимые триггером выполняются в рамках одной транзакции. Как следствие, при откате транзакции откатываются также и все изменения, внесенные в БД триггерами.

Элементы языка SQL

Работа с триггерами

Создание триггеров

Триггер создается оператором:

CREATE TRIGGER ИмяТриггера FOR ИмяТаблицы [ ACTIVE | INACTIVE ]

{ BEFORE | AFTER }

{ DELETE | INSERT | UPDATE } [ POSITION номер ]

AS

[<объявление локальных переменных>] BEGIN

<оператор> END

Элементы языка SQL

Работа с триггерами

Создание триггеров

Пример (обеспечение каскадных воздействий):

CREATE TRIGGER AD_TOVARY FOR TOVARY ACTIVE

AFTER DELETE POSITION 1 AS

BEGIN

DELETE FROM RASHOD

WHERE RASHOD.TOVAR = TOVARY.TOVAR; END`

Элементы языка SQL

Работа с триггерами

Значения OLD и NEW

Значение OLD.имя_столбца позволяет обратиться к состоянию столбца, имевшему место до внесения возможных изменений, а значение NEW.имя_столбца - к состоянию столбца, имевшему место после внесения возможных изменений.

Пример:

CREATE TRIGGER BU_TOVARY FOR TOVARY

ACTIVE

BEFORE UPDATE

AS

BEGIN

IF ( OLD.TOVAR <> NEW.TOVAR ) THEN

UPDATE RASHOD

SET TOVAR = NEW.TOVAR

WHERE TOVAR = OLD.TOVAR;

END

Элементы языка SQL

Работа с триггерами

Изменение и удаление триггеров

Изменение существующего триггера:

ALTER TRIGGER ИмяТриггера FOR ИмяТаблицы [ ACTIVE | INACTIVE ]

{ BEFORE | AFTER }

{ DELETE | INSERT | UPDATE } [ POSITION номер ]

AS <тело триггера>

Удаление триггера:

DROP TRIGGER ИмяТриггера

Соседние файлы в папке Презентации по технологиям БД