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

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

Оператор DROP PROCEDURE

Оператор T-SQL DROP PROCEDURE действует просто – он удаляет хранимую процедуру. Вы не сможете восстановить хранимую процедуру после ее удаления. Если вам нужно использовать удаленную процедуру, вы должны полностью воссоздать ее с помощью оператора CREATE PROCEDURE. Все полномочия по удаленной хранимой процедуре будут утрачены, и они должны быть предоставлены снова. Ниже приводится пример использования DROP PROCEDURE для удаления процедуры GetUnitPrice:

USE Northwind
GO
 
DROP PROCEDURE GetUnitPrice 
GO
Примечание. Для удаления хранимой процедуры вы должны использовать базу данных, в которой она находится. Напомним, что для использования какой-либо базы данных нужно применить оператор USE, после которого указывается имя этой базы данных.
Хранимая процедура sp_helptext

Системная хранимая процедура sp_helptext позволяет вам просматривать определение любой хранимой процедуры и оператора, который использовался для создания этой процедуры. (Ее можно также использовать для просмотра определения триггера, представления, правила или значения по умолчанию.) Это средство полезно, если вы хотите быстро воспроизвести определение процедуры (или одного из только что упомянутых объектов), когда используете ISQL, OSQL или анализатор запросов SQL Query Analyzer. Вы можете также направлять выходные результаты в файл, чтобы создать из этого определения сценарий, который можно использовать для редактирования или повторного создания процедуры. Чтобы использовать sp_helptext, вы должны указать в качестве параметра имя вашей хранимой процедуры (или имя другого объекта). Например, для просмотра операторов, которые использовались выше для создания процедуры InsertRows, используйте следующую команду. (И здесь для выполнения данной команды вы должны использовать базу данных, в которой находится процедура.)

USE MyDB GO sp_helptext InsertRows GO

Выводимые результаты выглядят следующим образом:

Text
---------------------------------------------------------------------
CREATE PROCEDURE InsertRows   @start_value int 
AS 
DECLARE    @loop_counter int, 
               @start_val    int 
SET            @start_val = @start_value – 1 
SET            @loop_counter = 0 
WHILE (@loop_counter < 5) 
     BEGIN 
          INSERT INTO mytable VALUES (@start_val + 1, 'new row') 
          PRINT (@start_val) 
          SET      @start_val        = @start_val + 1 
          SET      @loop_counter   = @loop_counter + 1 
   END

Заключение

В этой лекции вы узнали, что такое системные хранимые процедуры и определяемые пользователем хранимые процедуры и почему они используются. Вы также узнали, как создавать хранимые процедуры с помощью операторов T-SQL, Enterprise Manager или мастера Create Stored Procedure Wizard, и увидели, чем отличаются эти методы. Кроме того, вы узнали, как использовать параметры и переменные и как выполнять хранимые процедуры. Мы также рассмотрели операторы T-SQL, используемые для изменения, удаления и просмотра текста хранимой процедуры. В "Создание и использование триггеров" мы рассмотрим триггеры – специальный тип хранимых процедур, – которые автоматически запускаются при определенных условиях.