КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Пример простой хранимой процедуры.
Попробуем создать простую хранимую процедуру и на ее примере изучить процесс создания хранимых процедур. Но для начала приведем синтаксическую диаграмму инструкции создания хранимой процедуры:
Итак, вот пример очень простой хранимой процедуры, реализованной в рамках диалекта Transact-SQL, которая принимает на входе два числа, складывает их и возвращает полученный результат:
CREATE PROCEDURE SP_Add @first_arg INT, @second_arg INT, @Result INT OUTPUT AS BEGIN @Result = @first_arg + @second_arg; END;
Вкратце опишем код приведенной инструкции: после команды CREATE PROCEDURE указывается имя создаваемой процедуры (имя должно быть уникальным в пределах базы данных) - в данном случае SP_Add, затем через запятую перечисляются входные параметры – “@first_arg” и “@second_arg” – с указанием их типов. В конце списка перечисляются выходные параметры (в нашем случае – “@Result”), через которые процедура возвращает в вызывающий блок данные, вычисляемые или получаемые внутри своего тела. Дело в том, что MS SQL Server (и в Sybase Server), в отличие от Oracle (диалект PL/SQL) и Informix SDBM, не поддерживает создание функций, возвращающих значение через свое имя (подобно функциям в процедурных языках программирования, таких как C, Pascal, Basic). Точнее говоря, хранимые процедуры MS SQL Server возвращают одно значение – код возврата; обычно он равен нулю, если процедура была выполнена успешно, и иное значение в противном случае. Для передачи в вызывающий блок кода возврата в Transact-SQL предназначен оператор RETURN. Для любых других возвращаемых значений необходимо создавать выходные параметры. У выходных параметров обязательно должно быть указано ключевое слово OUTPUT. Список выходных параметров так же является необязательным и может включать в себя любое количество параметров. Имена параметров и переменных в диалекте Transact-SQL должны предваряться символом “@” (без кавычек). В хранимых процедурах используются любые скалярные типы данных, доступные для использования в той или иной СУБД. He предусмотрено применение массивов и типов, определяемых пользователем – доменов. После списка параметров указано ключевое слово AS. До ключевого слова AS идет заголовок, а после него - тело процедуры. Тело хранимой процедуры представляет собой перечень описаний ее внутренних (локальных) переменных (если они есть) и блок операторов, заключенный в операторные скобки BEGIN … END. В данном случае тело хранимой процедуры очень простое – она просто складывает два входных аргумента и присваиваем их результат выходному.
|