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

Содержание

Слайд 2

Хранимые процедуры Хранимые процедуры - это объекты базы данных, которые представляют

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

Хранимые процедуры - это объекты базы данных, которые представляют собой

небольшие программы, манипулирующие данными и выполняемые на сервере.
Хранимая процедура – это набор инструкций T-SQL, выполняемый как единое целое.
Хранимая процедура кроме команд языка SQL, могут использовать немногочисленные управляющие команды.
Слайд 3

Хранимые процедуры Создание CREATE PROC[EDURE] имя_процедуры [параметры] AS операторы процедуры Вызов EXEC[UTE] имя_процедуры [список_формальных_параметров]

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

Создание
CREATE PROC[EDURE] имя_процедуры [параметры]
AS
операторы процедуры
Вызов
EXEC[UTE] имя_процедуры [список_формальных_параметров]


Слайд 4

Переменные Локальные переменные (начинаются с символа @ ) Глобальные переменные (начинаются

Переменные

Локальные переменные (начинаются с символа @ )
Глобальные переменные (начинаются с символов

@@)
Объявление переменных DECLARE имя_переменной тип_переменной
Слайд 5

Операторы Блок операторов BEGIN … END Оператор присвоения SELECT переменная=значение SET

Операторы

Блок операторов BEGIN … END
Оператор присвоения SELECT переменная=значение SET переменная=значение
Условный

оператор IF условие Оператор1 [ELSE Оператор2]
Цикл WHILE условие Оператор
Выбор CASE выражение WHEN вариант1 THEN выражение1 WHEN вариант2 THEN выражение2 … ELSE выражениеN END
Слайд 6

Слайд 7

Хранимые процедуры Создание процедуры, использующий входной параметр Вызов

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

Создание процедуры, использующий входной параметр
Вызов

Слайд 8

Проверка существования клиента. Если фирма существует вывести подробную информацию о фирме. Использование условия

Проверка существования клиента. Если фирма существует вывести подробную информацию о фирме.

Использование

условия
Слайд 9

Проверка существования клиента. Если фирма существует вывести подробную информацию о фирме.

Проверка существования клиента. Если фирма существует вывести подробную информацию о фирме.

Наименование фирмы вводится с клавиатуры. Если фирмы не существует выводится соответствующее сообщение
Слайд 10

Использование цикла Обновляется цена до тех пор пока средняя цена

Использование цикла

Обновляется цена до тех пор пока средняя цена <80. Максимальная

цена не должна превышать 200. В цикле выводится максимальная цена
Слайд 11

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

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

Слайд 12

Примеры хранимых процедур Вывести данные о продажах клиентов из определенного города

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

Вывести данные о продажах клиентов из определенного города или

продажи определенного товара. Город и товар вводится с клавиатуры.
Способ 1.
Процедура создается в окне редактора запросов
Слайд 13

Способ 2 Создайте представление в Конструкторе Сохраните представление, как V_all

Способ 2

Создайте представление в Конструкторе
Сохраните представление, как V_all

Слайд 14

Способ 2 Создайте процедуру в окне редактора запросов Сравните процедуры

Способ 2

Создайте процедуру в окне редактора запросов
Сравните процедуры

Слайд 15

Способ 1 Итоги продажи товара за год

Способ 1

Итоги продажи товара за год

Слайд 16

Способ 2

Способ 2

Слайд 17

Распродажа1. Уменьшить стоимость непродаваемых товаров в десять раз Создать представление, отбирающее

Распродажа1. Уменьшить стоимость непродаваемых товаров в десять раз

Создать представление, отбирающее непродаваемые

товары
Создать хранимую процедуру, на основе представления
Выполнить процедуру
Слайд 18

Распродажа2. Уменьшить стоимость непродаваемых товаров на указанное количество процентов. Создать представление,

Распродажа2. Уменьшить стоимость непродаваемых товаров на указанное количество процентов.

Создать представление, отбирающее

непродаваемые товары
Создать хранимую процедуру, на основе представления
Выполнить процедуру
Слайд 19

Процедура на добавление

Процедура на добавление

Слайд 20

Между

Между

Слайд 21

Слайд 22

Триггер - это специальный тип хранимой процедуры, которая автоматически выполняется при

Триггер - это специальный тип хранимой процедуры, которая автоматически выполняется при

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

По умолчанию все триггеры (INSERT, DELETE и UPDATE) срабатывают после выполнения

По умолчанию все триггеры (INSERT, DELETE и UPDATE) срабатывают после выполнения

оператора изменения данных. Эти триггеры, называющиеся триггерами AFTER (после )
Кроме того в SQL Server 2000 используются триггеры INSTEAD OF (вместо), которые выполняются вместо оператора предполагаемого изменения данных.
Слайд 24

CREATE TRIGGER имя_триггера ON имя_таблицы FOR INSERT | UPDATE | DELETE AS Код_триггера

CREATE TRIGGER имя_триггера ON имя_таблицы
FOR INSERT | UPDATE | DELETE

AS Код_триггера
Слайд 25

При добавлении строки в таблицу ее копия помещается во временную таблицу

При добавлении строки в таблицу ее копия помещается во временную таблицу

с именем Inserted, при удалении - с именем Deleted.
При обновлении старая версия строки помещается во временную таблицу с именем Deleted, новая - с именем Inserted.
Слайд 26

CREATE TRIGGER ins_goods ON sell FOR INSERT AS DECLARE @IDGoods int,

CREATE TRIGGER ins_goods
ON sell FOR INSERT
AS
DECLARE @IDGoods int,

@kolvo int
-- Выбираем код товара и количество товара
SELECT @kolvo=I.num, @IDGoods=I.IDGoods
FROM Inserted I
INNER JOIN Goods T ON I.IDGoods = T.IDGoods
UPDATE Goods
Set store=store - @kolvo
Where IDGoods=@IDGoods
Слайд 27

CREATE TRIGGER ins_good ON number FOR INSERT AS DECLARE @codG int,

CREATE TRIGGER ins_good
ON number FOR INSERT
AS
DECLARE @codG

int, @kolvo int
-- Выбираем код товара и количество товара
SELECT @kolvo=I.number, @codG=I.codG
FROM Inserted I
INNER JOIN Goods T ON I.codG = T.codG
UPDATE Goods
Set store=store - @kolvo
Where codG=@codG