Разработка и сопровождение баз данных в среде СУБД MS SQL Server 2000. Сивохин А.В - 81 стр.

UptoLike

использоваться практически все команды Transact-SQL, объявляться транзакции,
устанавливаться блокировки и вызываться другие хранимые процедуры. Для
выхода из хранимой процедуры можно использовать команду RETURN.
В момент создания хранимой процедуры система осуществляет только проверку
синтаксиса команд. Поэтому можно создавать хранимые процедуры в любом порядке,
не особенно заботясь о том, что некоторые упоминаемые в них объекты
(в том числе
и другие хранимые процедуры) пока еще не существуют. Проверка правильности
ссылок производится только в процессе компиляции хранимой процедуры, которая
выполняется непосредственно перед ее выполнением.
При вызове одной хранимой процедуры из тела другой образуются так
называемые вложенные процедуры (nested procedure). При работе с такими
процедурами следует учитывать ограничение SQL Server 2000 на количество
уровней
вложенности — 32. Для определения текущего уровня вложенности можно
воспользоваться переменной @@NESTLEVEL.
Существует два способа выполнения хранимой процедуры:
указание только имени процедуры;
использование команды EXECUTE.
В первом варианте вызов хранимой процедуры должен быть единственной
командой передаваемого на исполнение пакета. Когда вызов хранимой процедуры
не является единственной командой в пакете, то присутствие команды
EXECUTE
обязательно. Более того, использование этой команды требуется при вызове
процедуры из тела другой процедуры или триггера. Синтаксис команды EXECUTE
следующий:
[ [ EXEC [ UTE ] ]
{
[@return_status = ]
{ procedure_name [;number] | @procedure_name_var
}
[ [ @parameter = ] { value | @variable [ OUTPUT ] | [ DEFAULT ] }]
[,…n]
[ WITH RECOMPILE ]
использоваться практически все команды Transact-SQL, объявляться транзакции,
устанавливаться блокировки и вызываться другие хранимые процедуры. Для
выхода из хранимой процедуры можно использовать команду RETURN.
    В момент создания хранимой процедуры система осуществляет только проверку
синтаксиса команд. Поэтому можно создавать хранимые процедуры в любом порядке,
не особенно заботясь о том, что некоторые упоминаемые в них объекты (в том числе
и другие хранимые процедуры) пока еще не существуют. Проверка правильности
ссылок производится только в процессе компиляции хранимой процедуры, которая
выполняется непосредственно перед ее выполнением.
    При вызове одной хранимой процедуры из тела другой образуются так
называемые вложенные процедуры (nested procedure). При работе с такими
процедурами следует учитывать ограничение SQL Server 2000 на количество уровней
вложенности — 32. Для определения текущего уровня вложенности можно
воспользоваться переменной @@NESTLEVEL.
    Существует два способа выполнения хранимой процедуры:
    • указание только имени процедуры;
    • использование команды EXECUTE.
    В первом варианте вызов хранимой процедуры должен быть единственной
командой передаваемого на исполнение пакета. Когда вызов хранимой процедуры
не является единственной командой в пакете, то присутствие команды EXECUTE
обязательно. Более того, использование этой команды требуется при вызове
процедуры из тела другой процедуры или триггера. Синтаксис команды EXECUTE
следующий:
[ [ EXEC [ UTE ] ]
{
[@return_status = ]
{ procedure_name [;number] | @procedure_name_var
}
[ [ @parameter = ] { value | @variable [ OUTPUT ] | [ DEFAULT ] }]
[,…n]
[ WITH RECOMPILE ]