Un procedimiento almacenado puede llamar a otro
procedimiento almacenado. El procedimiento que es invocado por otro debe
existir cuando creamos el procedimiento que lo llama. Es decir, si un
procedimiento A llama a otro procedimiento B, B debe existir al crear A.
Los procedimientos almacenados pueden anidarse hasta 32
niveles.
Creamos un procedimiento almacenado que reciba 2 números
enteros y nos retorne el producto de los mismos:
create procedure
pa_multiplicar
@numero1 int,
@numero2 int,
@producto int output
as
select
@producto=@numero1*@numero2;
Creamos otro procedimiento que nos retorne el factorial de
un número, tal procedimiento llamará al procedimiento
"pa_multiplicar":
create procedure
pa_factorial
@numero int
as
declare @resultado
int
declare @num int
set @resultado=1
set @num=@numero
while (@num>1)
begin
exec
pa_multiplicar @resultado,@num, @resultado output
set @num=@num-1
end
select
rtrim(convert(char,@numero))+'!='+convert(char,@resultado);
Cuando un procedimiento (A) llama a otro (B), el segundo (B)
tiene acceso a todos los objetos que cree el primero (A).
No hay comentarios.:
Publicar un comentario