
- •ЛЕКЦІЯ 11
- •План
- •Збережені процедури
- •Переваги використання
- •Збережені процедури існують незалежно від таблиць або яких-небудь інших об'єктів баз даних.
- •Типи збережених процедур
- •Задачі, що вирішуються під час створення збережених процедур
- •Синтаксис створення
- •Параметри синтаксису
- •Параметри синтаксису
- •Параметри синтаксису
- •Виконання збереженої процедури
- •Параметри синтаксису
- •Процедура без параметрів. Розробити процедуру для отримання назв і вартості товарів, придбаних Івановим
- •Процедура без параметрів. Створити процедуру для зменшення ціни товару першого сорту на 10%.
- •Процедура з вхідним параметром. Створити процедуру для отримання назв і вартості товарів, які
- •Для виклику процедури
- •Процедура з вхідними параметрами. Створити процедуру для зменшення ціни товару заданого типу відповідно
- •Процедура з вхідними параметрами і значеннями за умовчанням. Створити процедуру для зменшення ціни
- •Для звернення до процедури
- •Процедура з вхідними і вихідними параметрами. Створити процедуру для визначення загальної вартості товарів,
- •Для звернення до процедури
- •Створити процедуру для визначення загальної кількості товарів, придбаних фірмою, в якій працює заданий
- •Використовування вкладених процедур. Створити процедуру для визначення загальної кількості товарів, придбаних фірмою, в
- •Виклик процедури

Процедура з вхідними і вихідними параметрами. Створити процедуру для визначення загальної вартості товарів, проданих за конкретний місяць
CREATE PROC my_proc6 @m INT @s FLOAT OUTPUT
AS
SELECT @s=Sum(Товар.Вартість*Операція.Кількість)
FROM Товар INNER JOIN Операція
ON Товар.КодТовара=Операція.КодТовара GROUP Month(Операція.Дата)
HAVING Month(Операція.Дата)=@m

Для звернення до процедури
DECLARE @st FLOAT
EXEC my_proc6 1,@st OUTPUT
SELECT @st

Створити процедуру для визначення загальної кількості товарів, придбаних фірмою, в якій працює заданий
співробітник
CREATE PROC my_proc7 @n VARCHAR(20) @f VARCHAR(20) OUTPUT
AS
SELECT @f=Фирма FROM Клієнт
WHERE Прізвище=@n

Використовування вкладених процедур. Створити процедуру для визначення загальної кількості товарів, придбаних фірмою, в якій працює заданий співробітник.
CREATE PROC my_proc8 @fam VARCHAR(20) @kol INT OUTPUT
AS
DECLARE @firm VARCHAR(20) EXEC my_proc7 @fam,@firm OUTPUT
SELECT @kol=Sum(Операція.Кількість) FROM Клієнт INNER JOIN Операція
ON Клієнт.КодКлієнта=Операція.КодКлієнта GROUP Клієнт.Фірма
HAVING Клієнт.Фирма=@firm

Виклик процедури
DECLARE @k INT
EXEC my_proc8 ‘Іванов’,@k OUTPUT
SELECT @k