jueves, 11 de febrero de 2016

TAREA 1.1 "Procedimientos almacenados (anidados)"



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