Sp_recompile titles

 

Более детально о команде sp_recompile можно узнать из Справочного руководства SQL Сервера.

 

Создание и выполнение сохраненных процедур

 

Полный синтаксис команды create procedure выглядит так:

 

create procedure [владелец.]название_процедуры[;номер] [

[(] @название_параметра тип_данных [= default] [output]

[,  @название_параметра тип_данных [= default] [output]]...[)]] [with

recompile]

as sql_операторы

Создавать процедуру можно только в текущей базе данных.

Разрешение на создание сохраненной процедуры по умолчанию имеет владелец базы данных, который может передавать его другим пользователям.

Далее приводится полный синтаксис оператора execute:

 

[execute] [@return_status =]

[[[сервер.]база_данных.]владелец.]название_процедуры[;номер]

                  [[@название_параметра = ] значение |

                   [@название_параметра = ] @переменная [output]

[,[@название_параметра = ] значение |

 [@название_параметра = ] @переменная [output]...]]

[with recompile]

 

                       Замечание: Вызов удаленной процедуры не является частью транзакции. Если вызов удаленной процедуры происходит после слов begin transaction(начать транзакцию), а затем встречается команда rollback transaction(откатить транзакцию), то любые изменения, которые произвела удаленная процедура над удаленными данными, не восстанавливаются. Создатель сохраненной процедуры должен быть уверен, что все условия, которые могут вызвать откат со стороны триггера, должны проверяться перед вызовом удаленной процедуры, которая может изменить удаленные данные.

 

Параметры

 

Параметр - это аргумент сохраненной процедуры. Один или несколько параметров могут быть объявлены в операторе создания процедуры. Значение каждого параметра, объявленного в операторе create procedure, должно указываться пользователем в момент вызова процедуры.

Названиям параметров должен предшествовать символ “@”, а сами эти названия должны соответствовать правилам, установленным для идентификаторов. Для всех параметров должен быть указан системный или пользовательский тип данных, и если необходимо длина этого типа данных. Названия параметров являются локальными по отношению к содержащей их  процедуре; такие же названия можно использовать для параметров в другой процедуре. Названия параметров не должны превышать 30 байтов, включая символ “@”.

Далее приведена  сохраненная процедура, которая используется в базе данных pubs2. По заданным именам и фамилиям писателей процедура выдает названия книг этих авторов и название каждого издательства, где они были опубликованы.

 

create proc au_info @lastname varchar(40),

  @firstname varchar(20) as