Опубликован: 11.12.2006 | Доступ: свободный | Студентов: 5365 / 282 | Оценка: 4.42 / 3.86 | Длительность: 57:15:00

Лекция 21: Создание хранимых процедур и управление этими процедурами

Использование Enterprise Manager

Теперь, когда вы знаете, как использовать T-SQL для создания хранимых процедур, рассмотрим, как использовать для их создания Enterprise Manager. Чтобы создать хранимую процедуру с помощью Enterprise Manager, вам по-прежнему нужно знать, как записываются операторы T-SQL. Enterprise Manager просто снабжает вас графическим интерфейсом, в котором можно создавать вашу процедуру. Мы опробуем этот метод, повторно создав хранимую процедуру InsertRows, как это описано ниже.

  1. Чтобы удалить хранимую процедуру, сначала раскройте папку базы данных MyDB в левой панели. Enterprise Manager и щелкните на папке Stored Procedures (Хранимые Процедуры). В правой панели появятся все хранимые процедуры этой базы данных. Щелкните правой кнопкой мыши на хранимой процедуре InsertRows (она должна существовать – мы создали ее ранее в этой лекции) и выберите из контекстного меню пункт Delete (Удалить). (Вы можете также переименовать или скопировать хранимую процедуру через это контекстное меню.) Появится диалоговое окно Drop Objects (Удаление объектов) (рис. 21.1). Щелкните на кнопке Drop All (Удалить все), чтобы удалить хранимую процедуру.
  2. Щелкните правой кнопкой мыши на папке Stored Procedures и выберите из контекстного меню пункт New Stored Procedure (Создать хранимую процедуру). Появится диалоговое окно Stored Procedure Properties (Свойства хранимой процедуры) (рис. 21.2).
    Диалоговое окно Drop Objects (Удаление объектов)

    Рис. 21.1. Диалоговое окно Drop Objects (Удаление объектов)
     Окно Stored Procedure Properties (Свойства хранимой процедуры)

    Рис. 21.2. Окно Stored Procedure Properties (Свойства хранимой процедуры)
  3. В поле Text (Текст) вкладки General (Общие) замените [OWNER].[PROCEDURE NAME] ([Владелец].[Имя процедуры]) на имя хранимой процедуры – в данном случае, – InsertRows. Затем введите текст T-SQL-программы для этой хранимой процедуры. На рис. 21.3 показано окно Stored Procedure Properties после ввода текста T-SQL-программы для процедуры InsertRows.
    Текст T-SQL-программы для новой хранимой процедуры

    Рис. 21.3. Текст T-SQL-программы для новой хранимой процедуры
  4. Щелкните на кнопке Check Syntax (Проверить синтаксис), чтобы SQL Server указал ошибки синтаксиса T-SQL в хранимой процедуре. Исправьте найденные синтаксические ошибки и снова щелкните на кнопке Check Syntax. После успешной проверки синтаксиса вы увидите окно сообщения (рис. 21.4). Щелкните на кнопке OK
    Окно сообщения об успешной проверке синтаксиса хранимой процедуры

    Рис. 21.4. Окно сообщения об успешной проверке синтаксиса хранимой процедуры
  5. Щелкните на кнопке OK в окне Stored Procedure Properties, чтобы создать вашу хранимую процедуру и вернуться в окно Enterprise Manager. Щелкните на папке Stored Procedures в левой панели Enterprise Manager, чтобы показать новую хранимую процедуру в правой панели (рис. 21.5).
    Новая хранимая процедура в окне Enterprise Manager

    увеличить изображение
    Рис. 21.5. Новая хранимая процедура в окне Enterprise Manager
  6. Чтобы присвоить пользователям полномочия выполнения новой хранимой процедуры, щелкните правой кнопкой мыши на имени этой хранимой процедуры в правой панели Enterprise Manager и выберите из контекстного меню пункт Properties (Свойства). В появившемся окне Stored Procedure Properties щелкните на кнопке Permissions (Полномочия). Появится окно Object Properties (Свойства объектов) (рис. 21.6). Установите флажки в колонке EXEC для пользователей или ролей базы данных, которым вы хотите разрешить выполнение этой хранимой процедуры. В данном примере полномочия выполнения хранимой процедуры InsertRows предоставлены трем пользователям.
    Вкладка Permissions окна Object Properties (Свойства объектов)

    Рис. 21.6. Вкладка Permissions окна Object Properties (Свойства объектов)
  7. Щелкните на кнопке Apply (Применить) и затем щелкните на кнопке OK, чтобы присвоить выбранные вами полномочия и вернуться в окно Stored Procedure Properties. Для завершения щелкните на кнопке OK.

Вы можете также использовать Enterprise Manager для редактирования хранимой процедуры. Для этого щелкните правой кнопкой мыши на имени этой процедуры и выберите из контекстного меню пункт Properties. Выполните редактирование процедуры в окне Stored Procedure Properties (рис. 21.3), проверьте синтаксис, щелкнув на кнопке Check Syntax, щелкните на кнопке Apply и затем щелкните на кнопке OK.

Кроме того, вы можете использовать Enterprise Manager для управления полномочиями по хранимой процедуре. Для этого щелкните правой кнопкой мыши на имени хранимой процедуры в окне Enterprise Manager, укажите в контекстном меню пункт All Tasks (Все задачи) и выберите пункт Manage Permissions (Управление полномочиями). Вы можете также создавать публикацию для репликации (см. "Репликация в Microsoft SQL Server: обзор типов репликации и репликация моментальных снимков" ), генерировать сценарии SQL и отображать зависимости (dependencies) для хранимой процедуры из подменю All Tasks. Если вы решите генерировать сценарии SQL, то SQL Server автоматически создаст файл сценария (с указанным вами именем), который будет содержать определение хранимой процедуры. Затем вы сможете при необходимости повторно создать процедуру, используя этот сценарий.

Анатолий Федоров
Анатолий Федоров
Россия, Москва, Московский государственный университет им. М. В. Ломоносова, 1989
Игорь Соловьев
Игорь Соловьев
Россия, Братск