Россия, г. Санкт-Петербург |
Лекция 21: Создание хранимых процедур и управление этими процедурами
Оператор DROP PROCEDURE
Оператор T-SQL DROP PROCEDURE действует просто – он удаляет хранимую процедуру. Вы не сможете восстановить хранимую процедуру после ее удаления. Если вам нужно использовать удаленную процедуру, вы должны полностью воссоздать ее с помощью оператора CREATE PROCEDURE. Все полномочия по удаленной хранимой процедуре будут утрачены, и они должны быть предоставлены снова. Ниже приводится пример использования DROP PROCEDURE для удаления процедуры GetUnitPrice:
USE Northwind GO DROP PROCEDURE GetUnitPrice GO
Хранимая процедура 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, используемые для изменения, удаления и просмотра текста хранимой процедуры. В "Создание и использование триггеров" мы рассмотрим триггеры – специальный тип хранимых процедур, – которые автоматически запускаются при определенных условиях.