Понедельник, 23.06.2025, 12:21
Приветствую Вас, Гость | RSS
Меню сайта
Форма входа
Поиск
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

48 Создание, модификация и удаление хранимых процедур средствами T-SQL.

CREATE PROC[EDURE] procedure_name [;number]

[ {^parameter data_type} [VARYING] [= default] [OUTPUT] ] [,...n]

[WITH

{    RECOMPILE

|  ENCRYPTION

|  RECOMPILE.  ENCRYPTION }  ]

[FOR REPLICATION]

AS

sql_statement [...n]

procedure_name — имя создаваемой процедуры. Используя префиксы sp_, # и ##, можно определить создаваемую процедуру как системную или временную.

number — параметр определяет идентификационный номер хранимой процедуры, однозначно определяющий ее в группе процедур;

(^parameter — определяет имя параметра, который будет использоваться создаваемой хранимой процедурой для передачи входных или выходных данных.

OUTPUT — использование этого ключевого слова определяет указанный па­раметр как выходной;

 VARYING — ключевое слово, которое используется совместно с параметром, относящимся к типу данных cursor. Определяет, что в качестве выходного параметра будет представлено результирующее множество;

RECOMPILE — ключевое слово, предписывающее системе создавать план выполнения процедуры при каждом ее вызове;

 FOR REPLICATION — процедура, определенная с использованием данного ключевого слова, предназначена исключительно для осуществления процесса репликации.

 ENCRYPTON — если при определении процедуры было использовано данное ключевое слово, то текст процедуры непосредственно перед записью в системную таблицу syscomments будет зашифрован.

AS — ключевое слово, определяющее начало кода хранимой процедуры.

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

Чтобы модифицировать хранимую процедуру:

ALTER PROC[EDURE] procedure_name [;number]

[ {©parameter data_type } [VARYING] [= default] [OUTPUT] ] [,...n]

[WITH

{ RECOMPILE

|   ENCRYPTION

j  RECOMPILE  .  ENCRYPTION}  ]

[FOR REPLICATION]

AS

sql_statement [...n]

Параметры этой команды полностью идентичны аналогичным параметрам команды CREATE PROCEDURE.

Удаление хранимых процедур

DROP PROCEDURE {procedure}  [,...n]