Работа с базами данных
<<  Язык запросов SQL Триггеры баз данных  >>
Хранимые процедуры
Хранимые процедуры
Понятие хранимых процедур
Понятие хранимых процедур
Системные хранимые процедуры
Системные хранимые процедуры
Создание, изменение и удаление хранимых процедур
Создание, изменение и удаление хранимых процедур
Триггеры
Триггеры
Типы триггеров
Типы триггеров
Реализация триггеров
Реализация триггеров
Триггер
Триггер
Сервер
Сервер
Примеры использования
Примеры использования
Презентация «Хранимые процедуры». Размер 130 КБ. Автор: Admin.

Загрузка...

Хранимые процедуры

содержание презентации «Хранимые процедуры.ppt»
СлайдТекст
1 Хранимые процедуры

Хранимые процедуры

Лекция № 7. Хранимые процедуры. Триггеры. 1. Понятие хранимых процедур. Примеры виспользования. 2. Триггеры. Виды триггеров. Использование.

2 Понятие хранимых процедур

Понятие хранимых процедур

1. Понятие хранимых процедур. Примеры использования. Хранимые процедуры представляют собой группы связанных между собой операторов SQL, применение которых делает работу программиста более легкой и гибкой, поскольку выполнить хранимую процедуру часто оказывается гораздо проще, чем последовательность отдельных операторов SQL. Хранимые процедуры представляют собой набор команд, состоящий из одного или нескольких операторов SQL или функций, хранящийся в базе данных в откомпилированный виде.

3 Системные хранимые процедуры

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

Системные хранимые процедуры - предназначены для выполнения различных административных действий. Пользовательские хранимые процедуры - реализуют те или иные действия заданы пользователем. Временные хранимые процедуры - существуют лишь некоторое время, после чего автоматически уничтожаются сервером. Типи хранимых процедур.

4 Создание, изменение и удаление хранимых процедур

Создание, изменение и удаление хранимых процедур

Создание, изменение и удаление хранимых процедур. Создание и изменение имеющейся хранимой процедуры осуществляется с помощью следующей команды: <определение_процедуры>::={CREATE | ALTER } PROC[EDURE] ім'я_процедури [;номер] [{@имя_параметра тип_данных } [VARYING ] [=default][OUTPUT] ][,...n] [WITH { RECOMPILE | ENCRYPTION | RECOMPILE, ENCRYPTION }] [FOR REPLICATION] AS sql_оператор [...n]. Уничтожение хранимой процедуры осуществляется командой: DROP PROCEDURE {имя_процедуры} [,...n]. Для выполнения хранимой процедуры используется команда: [[ EXEC [ UTE] имя_процедури [;номер][[@имя_параметра=]{значение | имя_переменной} [OUTPUT ]|[DEFAULT ]][,...n].

5 Триггеры

Триггеры

2.Триггеры. Виды триггеров. Использование. Триггеры - особый инструмент SQL-сервера, используемый для поддержания целостности данных в базе данных. Триггер представляет собой специальный тип хранимых процедур, запускаемых сервером автоматически при попытке изменения данных в таблицах, с которыми триггеры связаны. Каждый триггер привязывается к конкретной таблице. Триггеры используются для проверки целостности данных, а также для отката транзакций.

6 Типы триггеров

Типы триггеров

Типы триггеров. В SQL Server существует два параметра, определяющие поведение триггеров: AFTER. Триггер выполняется после успешного выполнения вызвав его команд. Если же команды с какой-либо причине не могут быть успешно завершены, триггер не выполняется. INSTEAD OF. Триггер вызывается вместо выполнения команд. В отличие от AFTER-триггера INSTEAD OF-триггер может быть определен как для таблицы, так и для просмотра. Для каждой операции INSERT, UPDATE, DELETE можно определить только один INSTEAD OF-триггер. Триггеры различают по типу команд, на которые они реагируют. Существует три типа триггеров: INSERT TRIGGER - запускаются при попытке вставки данных с помощью команды INSERT. UPDATE TRIGGER - запускаются при попытке изменения данных с помощью команды UPDATE. DELETE TRIGGER - запускаются при попытке удаления данных с помощью команды DELETE.

7 Реализация триггеров

Реализация триггеров

Реализация триггеров в среде MS SQL Server. В реализации СУБД MS SQL Server используется следующий оператор создания или изменения триггера: <Определение_триггера>::= {CREATE | ALTER} TRIGGER имя_триггера ON {имя_таблици | имя_просмотра } [WITH ENCRYPTION ]{ { { FOR | AFTER | INSTEAD OF } { [ DELETE] [,] [ INSERT] [,] [ UPDATE] } [ WITH APPEND] [ NOT FOR REPLICATION ] AS sql_оператор[...n]} | { {FOR | AFTER | INSTEAD OF } { [INSERT] [,] [UPDATE] } [ WITH APPEND ][ NOT FOR REPLICATION] AS IF UPDATE(имя_столбца) [ {AND | OR} UPDATE(имя_столбца)] [...n] | IF (COLUMNS_UPDATES(){оператор_бит_обработки} бит_маска_изменения) {оператор_бит_сравнения }бит_маска [...n]} sql_оператор [...n]}}.

8 Триггер

Триггер

Триггер может быть создан только в текущей базе данных, но допускается обращение внутри триггера к другим базам данных, в том числе и расположенных на удаленном сервере. Имя триггера должно быть уникальным в пределах базы данных. Дополнительно можно указать имя владельца. При указании аргумента WITH ENCRYPTION сервер выполняет шифрование кода триггера, чтобы никто, включая администратора, не мог получить к нему доступ и прочитать его. Шифрование часто используется для сокрытия авторских алгоритмов обработки данных, являющихся интеллектуальной собственностью программиста или коммерческой тайной.

9 Сервер

Сервер

При выполнении команд добавления, изменения и удаления записей сервер создает две специальные таблицы: inserted и deleted. В них содержатся списки строк, которые будут вставлены или удалены по завершении транзакции. Структура таблиц inserted и deleted идентична структуре таблиц, для которой определяется триггер. Для каждого триггера создается свой ??комплект таблиц inserted и deleted, поэтому никакой другой триггер не сможет получить к ним доступ. В зависимости от типа операции, вызвавшей выполнение триггера, содержание таблиц inserted и deleted может быть разным. Для уничтожения триггера используется команда: DROP TRIGGER {имя_триггера} [,...n].

10 Примеры использования

Примеры использования

Примеры использования. Приклад 3. Процедура с входными параметрами и значениями по умолчанию. Создать процедуру для уменьшения цены товара заданного типа в соответствии с указанным%. CREATE PROC my_proc5 @t VARCHAR(20)='Цукерки', @p FLOAT=0.1 AS UPDATE Товар SET Ціна=Ціна*(1-@p) WHERE Тип=@t Для обращения к процедуре можно использовать команды: EXEC my_proc5 'Вафлі',0.05 або EXEC my_proc5 @t='Вафлі', @p=0.05 або EXEC my_proc5 @p=0.05 В этом случае уменьшается цена конфет (значение типа не указано при вызове процедуры и принимается по умолчанию). EXEC my_proc5 В последнем случае оба параметра (и тип, и проценты) не указаны при вызове процедуры, их значения берутся по умолчанию.

«Хранимые процедуры»
Сайт

5informatika.net

115 тем
5informatika.net > Работа с базами данных > Хранимые процедуры.ppt