Создание хранимых процедур с помощью программы SQL Server Enterprise Manager
Для создания хранимой процедуры с помощью SQL Server Enterprise Manager выполните ряд действий.
1. В окне Microsoft SQL Servers программы SQL Server Enterprise Manager щелкните правой кнопкой мыши на папке Stored Procedures рабочей базы данных. В нашем примере это база данных pubs.
2. Из контекстного меню выберите команду New Stored Procedure (Создать хранимую процедуру). Появится диалоговое окно Stored Procedure Properties (Свойства хранимой процедуры).
НА ЗАМЕТКУ
Хотя диалоговое окно Stored Procedure Properties выглядит как окно с фиксированными размерами, его размер можно изменить, перетаскивая один из краев или уголков окна, как это делается с другими диалоговыми окнами. Таким образом можно изменить размер окна для более удобного отображения всего введенного текста.
3. Введите текст хранимой процедуры, который показан на рис. 3.18.
РИС. 3.18. Диалоговое окно создания новой хранимой процедуры Stored Procedure Properties в программе SQL Server Enterprise Manager
4. После выполнения этих действий щелкните на кнопке OK в нижней части диалогового окна Stored Procedure Properties.
Запуск хранимых процедур в окне программы SQL Query Analyzer
Для запуска хранимых процедур (а также представлений и других команд SQL) можно воспользоваться программой SQL Query Analyzer. Таким образом можно протестировать созданную хранимую процедуру или представление. Для запуска хранимой процедуры в окне программы SQL Query Analyzer выполните приведенные ниже действия.
1. В окне программы SQL Server Enterprise Manager выберите команду Tools→SQL Query Analyzer (Сервис→SQL Query Analyzer); запустится программа SQL Query Analyzer.
2. В диалоговом окне Query введите имя хранимой процедуры, которую нужно запустить. Например, для запуска хранимой процедуры, описанной в предыдущем разделе, введите procEmployeesSorted.
3. Выполните запрос, нажав клавишу или щелкнув на кнопке Execute Query. Хранимая процедура будет выполнена и возвратит (при наличии данных в таблице) результирующий набор во вкладке Grids (или во вкладке Results).
4. В окне Microsoft SQL Servers программы SQL Server Enterprise Manager выберите папку Stored Procedures для проверки наличия только что созданной хранимой процедуры. Здесь для обновления содержимого консольного окна, возможно, понадобится щелкнуть на кнопке Refresh (Обновить).
Конечно, хранимую процедуру можно запустить, непосредственно запуская программу SQL Query Analyzer, и для этого совсем не обязательно запускать ее изнутри программы SQL Server Enterprise Manager.
Создание хранимой процедуры с помощью программы SQL Query Analyzer
Процесс создания хранимой процедуры с помощью SQL Query Analyzer практически не отличается от аналогичного процесса в окне программы SQL Server Enterprise Manager.
НА ЗАМЕТКУ
Убедитесь в том, что хранимая процедура создается в базе данных Novelty. Довольно часто разработчики забывают переключиться на нужную базу данных (с помощью команды USE или списка баз данных в программе SQL Query Analyzer) до выполнения команд по отношению к ней. Создание хранимых процедур с помощью программы SQL Server Enterprise Manager только усугубляет последствия этой ошибки.
Для создания хранимой процедуры с помощью программы SQL Query Analyzer используйте команду CREATE PROCEDURE.
1. В окне программы SQL Query Analyzer введите следующий код:
CREATE PROCEDURE GetCustomerFromID @custID int
AS
SELECT * FROM tblCustomer
WHERE ID = @custID
2. В этом коде создается хранимая процедура GetCustomerFromID, которая принимает аргумент @custID и возвращает запись, в поле ID которой находится значение, совпадающее со значением аргумента @custID (поскольку поле ID в таблице tblCustomer является первичным ключом, эта процедура всегда будет возвращать либо нуль, либо одну запись).
3. Выполните введенную команду для создания хранимой процедуры.
4. Теперь необходимо протестировать созданную хранимую процедуру в окне Query. Для этого попробуйте извлечь запись из таблицы, введя следующую команду:
GetCustomerFromID 22
5. Сервер вернет запись клиента с идентификационным номером 22 (рис. 3.19). Использование другого идентификационного номера в качестве параметра этой хранимой процедуры позволит вернуть другую запись с данными о другом клиенте.
Созданная процедура вернет данные только в том случае, если они есть в таблице.
РИС. 3.19. Запись клиента возвращается с помощью хранимой процедуры GetCustomerFromID
Читать дальше