Цели:
Изучить процесс создания динамических запросов при помощи хранимых процедур.
Научиться работать с хранимыми процедурами.
Создание запросов
Хранимая процедура — SQL запрос, который имеет параметры, то есть он выполняется как обычная процедура (мы задаем ее имя и передаем в храни- мую процедуру значение параметров.) В зависимости от значения параметров хранимой процедуры мы получаем тот или иной результат запроса.
Замечание. В SQL-сервере хранимые процедуры реализуют динамиче- ские запросы, выполняемые на стороне сервера.
Перейдём к созданию хранимых процедур. Для работы с хранимыми про- цедурами в обозревателе объектов необходимо выделить папку “Programmability / Stored Procedures” («Программирование / Хранимые проце- дуры») базы данных Students (рис. 59).
Рисунок 59 — Отображение папки Программирование / Хранимые процедуры в обозревателе объектов
Создадим процедуру, вычисляющую среднее трёх чисел. Для создания новой хранимой процедуры щёлкните правой кнопкой мыши по папке “Stored Procedures” («Хранимые процедуры») (рис.59) и в появившемся меню выберите пункт “New Stored Procedure” («Создать хранимую процедуру…»). Появится окно кода новой хранимой процедуры (рис. 60).
Рисунок 60 — Окно новой хранимой процедуры Хранимая процедура имеет следующую структуру (рис. 60):
Область настройки параметров синтаксиса процедуры. Позволяет настра- ивать некоторые синтаксические правила, используемые при наборе кода процедуры. В нашем случае это:
SET ANSI_NULLS ON — включает использование значений NULL (Пусто) в кодировке ANSI,
SET QUOTED_IDENTIFIER ON — включает возможность использо- вания двойных кавычек для определения идентификаторов;
Область определения имени процедуры (Procedure_Name) и параметров, передаваемых в процедуру (@Paraml, @Param2). Определение парамет- ров имеет следующий синтаксис:
3.
@<Имя параметра> <Тип данных> = Значение по умолчанию> Параметры разделяются между собой запятыми;
Начало тела процедуры, обозначается служебным словом BEGIN;
Тело процедуры, содержит команды языка программирования запросов
SQL;
Конец тела процедуры, обозначается служебным словом END.
Достарыңызбен бөлісу: |