Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab8_SQL.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
284.67 Кб
Скачать

12. В блок синтаксиса Transact-sql введите следующий код (рис. 4):

SET @ret = @first + @sec

13. Чтобы сохранить процедуру, щелкните на кнопке Save панели инструментов.

Рис.4. Формирование хранимой процедуры-операции

Теперь нам нужно протестировать процедуру. Чтобы получить выходной параметр хранимой процедуры, его следует куда-то поместить. Это значит, что при выполнении запроса вы должны задать оба входных параметра, а также определить место хранения выходного.

1. Чтобы протестировать изменения, откройте новый запрос SQL Server и выполните следующий код (обратите внимание на то, что переменная @answer специально предназначена для хранения результата, возвращаемого выходным параметром @ret хранимой процедуры) (рис. 5):

USE Sales

DECLARE @answer int

EXEC dbo.Calc 1, 2, @answer OUTPUT

SELECT 'The answer is:', @answer

2. Закройте окно запроса.

Так что же все-таки произошло? Мы создали параметр @ret для возвращения значения программе, вызвавшей процедуру. Затем перед выполнением хранимой процедуры мы создали с помощью объявления DECLARE @answer переменную для хранения выходного параметра (ключевое слово DECLARE используется для создания времен­ных переменных). После создания переменной мы выполнили хранимую процедуру и указали ей поместить значение @ret во временную переменную @answer, отобража­емую впоследствии на экране с помощью инструкции SELECT.

Рис.5. Мы получили результат сложения

Выводы

Хранимая процедура представляет собой набор инструкций Transact-SQL (обычно запросов), хранящийся на сервере в ожидании запуска пользователями. Основное достоинство централизованного хранения заключается в том, что при выполнении пользователям не нужно пересылать по сети сотни строк кода, а всего лишь одну строку EXEC xpaнимая_процедура. Этими хранимыми процедурами легче управлять, чем распределенным кодом, поскольку, если вам потребуется изменить код процедуры, то сделать это нужно только на сервере, а не на всех машинах клиентов.

Хранимые процедуры используются для извлечения и изменения данных в лю­бое время.

В отличие от триггеров, хранимая про­цедура явно вызывается приложением. Системные хранимые процедуры очень полезны для администрирования и поддержки базы дан­ных.

Пользовательские хранимые процедуры применяются практически в любых за­дачах. Их преимущества, по сравнению с обычными представлениями и запросами, более чем очевидны: после первого выполнения компилированный план процедуры хранится в быстродействующем кэше в оперативной памяти, что существенно повы­шает скорость выполнения запросов. Другое их преимущество состоит в том, что пользователь может получить право выполнения хранимой процедуры, даже если он не имеет права доступа к тем объектам, к которым обращается процедура.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]