Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Метод указания AIS

.pdf
Скачиваний:
8
Добавлен:
18.02.2016
Размер:
9.86 Mб
Скачать

3.Нажмите кнопку Execute Query (Выполнить запрос) в панели инструментов анализатора запросов Query Analyzer. Query Analyzer выполнит хранимую процедуру и отобразит результаты.

Внимание! Поскольку процедура sp_help отображает все базы данных, имеющиеся на текущем сервере, ваша структура может не совпадать с той, которая представлена на рисунке. В вашей панели сетки Grid Pane могут содержаться другие базы данных.

Если хранимая процедура принимает входные параметры, вы можете предоставить их, указав позицию или имя. Чтобы предоставит параметры по позиции, вам нужно просто указать их после имени хранимой процедуры, отделяя запятыми:

КАТУEXECUTE имя процедурыИМпараметр[ , параметр.СЕЙФУЛЛИНА...]

Использование Object Browser для работы с хранимыми процедурами

КПанельObjectBrowser. ОМАРБЕКОВАсодержит папку Stored Procedures для каждой базы данных, включаяАглавную. . Каждая хранимая процедура, содержащаяся в списке, имеет папку Parameters. В этой папке в

определенном порядке размещаются параметры хранимой процедуры, поэтому вы можете воспользоваться ею для проверки имен параметров и их позиций.

Для создания сценария EXECUTEСУБДдля хранимой процедуры вы также можете воспользоваться командами скриптования из контекстного меню. Сценарий EXECUTE в Object Browser создает включения объявлений локальных переменных для возвращаемых значений и выходных параметров.

Выполните хранимую процедуру с входными параметрами

1.Выберите панель редактирования Editor Pane в окне Query (Запрос) и нажмите кнопку Clear Window (Очистить окно) в панели инструментов анализатора запросов Query Analyzer.

2.Введите следующий оператор в окне Query (Запрос):

3.Нажмите кнопку Execute Query (Выполнить запрос) в панели инструментов анализатора запросов Query Analyzer. Query Analyzer выполнит запрос и отобразит результаты.

151

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

EXECUTE хранимая_процедура @имя_парам = значение [, @имя_парам = значение ...]

Выполните хранимую процедуру с именованными параметрами

1.Выберите панель редактирования Editor Pane в окне Query (Запрос) и нажмите кнопку Clear Window (Очистить окно) в панели инструментов анализатора запросов Query Analyzer.

2.Введите следующий оператор в окне Query (Запрос):

КАТУ ИМ СЕЙФУЛЛИНА

К.Т.Н. А.С.

3.Нажмите кнопку ExecuteСУБДQuery (Выполнить запрос) в панели инструментов анализатора запросов Query Analyzer. Query Analyzer выполнит запрос и отобразит результаты.

Некоторые хранимые процедуры предоставляют для своих параметров значения по умолчанию. Подобно значениям по умолчанию для столбцов таблицы, параметры по умолчанию используются хранимой процедурой, если пользователь явно не задал значение. Использовать умолчание проще для именованных параметров – вам достаточно не указывать значение для параметра.

Если вы передаете параметры по позициям, обращение к умолчанию параметра зависит от его положения в списке. Если параметр находится в конце списка, или если этот параметр единственный, вы можете просто опустить его (не указывать). Если параметр не является последним параметром в

152

списке, вы можете воспользоваться ключевым словом DEFAULT, чтобы указать хранимой процедуре использовать значение по умолчанию.

Выполните хранимую процедуру с использованием ключевого слова DEFAULT

1.Выберите панель редактирования Editor Pane в окне Query (Запрос) и нажмите кнопку Clear Window (Очистить окно) в панели инструментов анализатора запросов Query Analyzer.

2.Введите следующий оператор в окне Query (Запрос):

3. Нажмите кнопку Execute Query (Выполнить запрос) в панели инструментов анализатора

запросов Query Analyzer. Query Analyzer выполнит запрос и отобразит результаты.

КАТУ ИМ.С.СЕЙФУЛЛИНА

К.Т.Н. ОМАРБЕКОВА А.С.

Кроме доступа к переданным им данным, хранимые процедуры могут также возвращать данные обратно через выходные параметры. Выходные параметры должны быть локальными переменными. Они могут быть заданы либо путем указания их имен, либо путем указания их позиций, но при этом после выходного параметра должно следовать ключевое слово OUTPUT.

Выполните хранимую процедуру с выходными параметрами

1. Введите

153

2.Нажмите кнопку Execute Query (Выполнить запрос) в панели инструментов анализатора запросов Query Analyzer. Query Analyzer выполнит сценарий и отобразит результаты.

КАТУ СЕЙФУЛЛИНА

К.Т.Н. ОМАРБЕКОВА А.С.

Синтаксис для хранимой процедуры, возвращающей значения, является неким гибридом оператора

EXECUTE и оператора SET:

EXECUTE @имя_переменнойСУБД= хранимая процедура [, парам [, парам ...] ]

Большинство системных процедур имеют возвращаемые значения, но поскольку они являются параметрами по умолчанию, их можно игнорировать в описании вызова процедуры. Если вы не указали локальную переменную для приема результатов, SQL Server просто отбросит значение.

Выполните хранимую процедуру с возвращаемым значением

1. Введите

154

Нажмите кнопку Execute Query (Выполнить запрос) в панели инструментов анализатора запросов Query Analyzer. Query Analyzer выполнит запрос и отобразит результаты.

КАТУ ИМ СЕЙФУЛЛИНА

К.Т.Н. ОМАРБЕКОВА А.С.

2. Выберите вкладку Message (Сообщение). Query Analyzer отобразит результаты выполнения

оператора PRINT, который выводит возвращаемое значение.

СУБД

Создание хранимых процедур

Как вы можете догадаться, хранимые процедуры создаются с использованием одной из разновидностей оператора CREATE – на этот раз, CREATE PROCEDURE. Синтаксис оператора CREATE PROCEDURE

следующий:

CREATE PROCEDURE имя_процедуры

[список_параметров] AS

155

операторы_процедуры

Имя_процедуры должно отвечать правилам, принятым для идентификаторов.

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

Операторы_процедуры, следующие после ключевого слова AS в операторе CREATE, определяют действия, которые будут выполняться при вызове хранимой процедуры. Они по своему функциональному назначению полностью аналогичны сценариям. Фактически можно считать все, что находится перед ключевым словом AS, заголовком SQL-сценария.

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

Создайте простую хранимую процедуру

1. Введите

КАТУ ИМ. СЕЙФУЛЛИНА

К.Т.Н. А.С.

2.Нажмите кнопку ExecuteСУБДQuery (Выполнить запрос) в панели инструментов анализатора запросов Query Analyzer. Query Analyzer создаст хранимую процедуру.

3.Нажмите кнопку New Query (Новый запрос) в панели инструментов анализатора запросов

Query Analyzer. Query Analyzer отобразит новое окно Query (Запрос).

4.Введите в окне вкладки Editor (Редактор) следующий оператор:

156

5.Нажмите кнопку Execute Query (Выполнить запрос) в панели инструментов анализатора запросов Query Analyzer. Query Analyzer выполнит хранимую процедуру и отобразит результаты.

КАТУ ИМ. СЕЙФУЛЛИНА

К.Т.Н. ОМАРБЕКОВА А.С.

6. Закройте окно QueryСУБД(Запрос), не сохраняя изменения при появлении соответствующего окназапроса.

Каждый из параметров в списке параметров имеет следующую структуру:

@имя_параметра тип_данных [= значение_по_умолчанию] [OUTPUT]

Имя_параметра должно удовлетворять правилам, принятым для идентификаторов. Имена параметров должны начинаться с символа @, подобно локальным переменным. Параметры являются локальными переменными; они видимы только в пределах хранимой процедуры. В одной хранимой процедуре может быть использовано максимально 2100 параметров.

Значение_по_умолчанию представляет собой значение, которое будет использоваться хранимой процедурой в случае, если пользователь не укажет значение для входного параметра в вызове хранимой процедуры. Ключевое слово OUTPUT, которое также не является обязательным, определяет параметры, которые будут возвращены в вызвавший процедуру сценарий.

Создайте хранимую процедуру с входным параметром

1. Введите

157

2.Нажмите кнопку Execute Query (Выполнить запрос) в панели инструментов анализатора запросов Query Analyzer. Query Analyzer создаст хранимую процедуру.

3.Нажмите кнопку New Query (Новый запрос) в панели инструментов анализатора запросов

Query Analyzer. Query Analyzer отобразит новое окно Query (Запрос).

4.Введите на вкладке Editor (Редактирование) следующий оператор:

КАТУ ИМ. СЕЙФУЛЛИНА

К.Т.Н. А.С.

5.

в панели инструментов анализатора

6. Нажмите кнопку Execute Query (Выполнить запрос)

запросов Query AnalyzerСУБД. Query Analyzer выполнит хранимую процедуру и отобразит результаты.

7. Закройте окно Query (Запрос), отклонив сохранение изменений в появившемся окне-запросе.

Создайте хранимую процедуру со значением по умолчанию

1. Введите

158

Нажмите кнопку Execute Query (Выполнить запрос) в панели инструментов анализатора запросов

Query Analyzer. Query Analyzer создаст хранимую процедуру.

2. Нажмите кнопку New Query (Новый запрос) в панели инструментов анализатора запросов

Query Analyzer. Query Analyzer отобразит новое окно Query (Запрос).

3. Введите на вкладке Editor (Редактирование) следующий оператор:

КАТУ ИМ.С.СЕЙФУЛЛИНА

К.Т.Н. А.С.

4.Нажмите кнопку ExecuteСУБДQuery (Выполнить запрос) в панели инструментов анализатора запросов Query Analyzer. Query Analyzer выполнит хранимую процедуру и отобразит результаты.

5. Закройте окно Query (Запрос), отклонив сохранение изменений в появившемся окне-запросе.

Создайте хранимую процедуру с выходным параметром

1. Введите

159

2.Нажмите кнопку Execute Query (Выполнить запрос) в панели инструментов анализатора запросов Query Analyzer. Query Analyzer создаст хранимую процедуру.

3.Нажмите кнопку New Query (Новый запрос) в панели инструментов анализатора запросов

Query Analyzer. Query Analyzer отобразит новое окно Query (Запрос).

4.Введите следующие операторы на вкладке Editor (Редактор):

КАТУ ИМ СЕЙФУЛЛИНА

К.Т.Н. А.С.

Нажмите кнопку ExecuteСУБДQuery (Выполнить запрос) в панели инструментов анализатора запросов Query Analyzer. Query Analyzer выполнит хранимую процедуру и отобразит результаты.

5. Закройте окно Query (Запрос), отклонив сохранение изменений в появившемся окне-запросе.

Возврат значений реализуется с помощью оператора RETURN, который имеет следующую форму: RETURN(int)

160