Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Посібник Мова SQL кредитно-модульний.doc
Скачиваний:
35
Добавлен:
01.05.2015
Размер:
1.25 Mб
Скачать

Визначення параметрів і їхніх значень

Якщо збереженій процедурі потрібні параметри, при виконанні процедури необхідно задати їхні значення. Визначення вхідних і вихідних параметрів починаються зі знака @, після якого треба вказати ім'я параметра і опис його типу даних. При виклику функції необхідно задати значення параметра і (не обов'язково) його ім'я. У наступних двох прикладах збережена процедураau_infoз бази данихPubsзапускається із двома параметрами -@lastnameі@firstname:

Викликати збережену процедуру з параметрами

USE Pubs

GO

EXECUTE au_info Green, Marjorie

Викликати збережену процедуру із вказівкою імен і значень параметрів

USE Pubs

GO

EXECUTE au_info @lastname = 'Green', @firstname = 'Marjorie'

У першому прикладі задані значення параметрів, а їхні імена опущені. Якщо значення параметрів задані без вказівки імен, то їхній порядок повинен збігатися з порядком, у якому були задані параметри при створенні процедури. У другому прикладі значення задані разом із вказівкою імен параметрів, у цьому випадку їхній порядок може бути довільним. Якщо під час створення процедури для її параметрів визначені значення за замовчуванням, то таку процедуру можна успішно виконати, не вказуючи значення параметрів. Нижче приводиться список деяких варіантів синтаксису при виконанні збережених процедур.

  • Збережена процедура повертає значення у цілочисленій змінній, певній для зберігання кодів повернення. У збереженій процедурі повинне бути присутнім ключове слово RETURNіз цілочисленим значенням (значеннями).

  • У збереженій процедурі визначені змінні для зберігання параметрів. Перед командою EXECUTEвизначаються змінні за допомогою ключового словаDECLARE.

Модифікація збереженої процедури

Оператор ALTER PROCEDURE(або його скорочена версіяALTER PROC) дозволяє модифікувати вміст користувальницької збереженої процедури за допомогою редактору запитів. Синтаксис оператораALTER PROCEDUREмайже повністю ідентичний синтаксисуCREATE PROCEDURE. Цінність застосування оператораALTER PROCEDUREзамість видалення й створення процедури «з нуля» полягає в тім, щоALTER PROCEDUREзберігає більшість властивостей процедури (наприклад, її ідентифікатор об'єкта, набір прав доступу і прапори).

Збережена процедура sp_renameдозволяє перейменовувати користувальницькі процедури. Наступний оператор перейменовує збережену процедуруByRoyaltyвRoyaltyByAuthor1:

USE PUBS

GO

EXECUTE sp_rename

@objname = 'byroyalty', @newname = 'RoyaltyByAuthorl',

@objtype = 'object'

В SQL Server Management Studioможна перейменувати користувальницьку збережену процедуру, клацнувши її правою кнопкою й вибравши командуRename.

При перейменуванні збережених процедур і інших об'єктів (наприклад, таблиць) слід дотримуватися обережності. Збережені процедури можуть бути вкладеними, і при виклику об'єкта вихідній збереженій процедурі не вдасться знайти його, якщо він перейменований.

Видалення збереженої процедури

Для видалення однієї користувальницької збереженої процедури, декількох процедур одночасно або набору згрупованих процедур використовують оператор DROP PROCEDUREабо його скорочену версіюDROP PROC. Видалимо з бази данихPubsдві процедури з іменамиProcedure01іProcedure02:

USE pubs

GO

DROP PROCEDURE procedure01, procedure02

Зверніть увагу, що база даних Pubs- поточна. При видаленні процедури не можна вказувати ім'я бази даних, повне ім'я процедури виглядає так:[власник].[ім'я_процедури].

Перш ніж видаляти збережену процедуру, варто перевірити, чи не залежать від неї будь-які інші об'єкти бази даних. Для перевірки наявності залежних об'єктів служить системна збережена процедура sp_depends. Джерелом проблем можуть стати тільки ті об'єкти, які залежать від процедури, що видаляється.