Está en la página 1de 14

BASES DE DATOS II

Mg. Ivn Daro Zapata Daz


Escuela de Ingeniera

Procedimientos Almacenados
Un procedimiento almacenado es un conjunto de instrucciones a las
que se les da un nombre, que se almacena en el servidor. Permiten
encapsular tareas repetitivas.
Ventajas:
Comparten la lgica de la aplicacin con las otras aplicaciones, con
lo cual el acceso y las modificaciones de los datos se hacen en un
solo sitio.
Permiten realizar todas las operaciones que los usuarios necesitan
evitando que tengan acceso directo a las tablas.
Reducen el trfico de red; en vez de enviar muchas instrucciones,
los usuarios realizan operaciones enviando una nica instruccin, lo
cual disminuye el nmero de solicitudes entre el cliente y el servidor.

Creacin de Procedimientos
Almacenados
Para crear un procedimiento almacenado empleamos la instruccin
"create procedure".
La sintaxis bsica parcial es:
create procedure NOMBREPROCEDIMIENTO
as INSTRUCCIONES;
Con las siguientes instrucciones se crea un procedimiento almacenado
llamado Pedidos menores que 20" que muestra todos los pedidos con
cantidades menores que 20
create proc pedidos_menores20
as select * from pedidos where cant < 20;

Ejecutar Procedimientos
Almacenados

Para ejecutar procedimientos almacenado se digita el siguiente


comando:
exec pedidos_menores20

Borrar Procedimientos
Almacenados

Los procedimientos almacenados se eliminan con "drop procedure".


Sintaxis:
drop procedure NOMBREPROCEDIMIENTO;

Drop procedure pedidos_menores20

Procedimientos Almacenados con


Parmetros de Entrada
Los procedimientos almacenados pueden recibir y devolver
informacin; para ello se emplean parmetros, de entrada y salida,
respectivamente
Los parmetros de entrada posibilitan pasar informacin a un
procedimiento.
Para que un procedimiento almacenado admita parmetros de entrada
se deben declarar variables como parmetros al crearlo. La sintaxis es:
create proc NOMBREPROCEDIMIENTO
@NOMBREPARAMETRO TIPO =VALORPORDEFECTO
as SENTENCIAS;

Ejemplo de Procedimientos
Almacenados con Parmetros de
Entrada

Crear un procedimiento que recibe el cdigo de un cliente como


parmetro para mostrar toda la informacin del cliente solicitado:

create procedure Datos_Clientes


@nc varchar(30)
as
Select * from clientes where Numclie = @nc;

Ejemplo de Procedimientos
Almacenados con Parmetros de
Entrada

Crear un procedimiento que recibe 2 parmetros, el nombre y el limite


de crdito del cliente

create procedure Datos_Clientes


@nc varchar(30),
@limCredito varchar(15)
as
Select * from clientes where Numclie = @nc and
limitecredito=@limcredito;

Ejemplo de Procedimientos
Almacenados con Parmetros de
Entrada

Cree un procedimiento almacenado que seleccione los nombres, y los


lmites de los crditos de los clientes que tengan un limite de crdito
sueldo superior o igual al enviado como parmetro
create procedure Datos_Clientes
@limCredito varchar(15)
as
Select * from clientes where
Limitecredito>=@limcredito;

Ejercicio
Cree un procedimiento almacenado llamado "actualizar_limitecredito
de manera que actualice el limite de crdito de un determinado cliente,
donde se debe actualizar el limite de crdito enviado como primer
parmetro con el valor enviado como segundo parmetro.
create procedure Datos_Clientes
@nc varchar(30),
@lc1 varchar(15),
@lc2 varchar(15)
as
Update clientes set limitecredito=@lc2
Where numclie=@nc

Procemientos con Parmetros de


Salida
Los procedimientos almacenados pueden devolver informacin; para
ello se emplean parmetros de salida. El valor se retorna a quien
realiz la llamada con parmetros de salida. Para que un
procedimiento almacenado devuelva un valor se debe declarar una
variable con la palabra clave "output" al crear el procedimiento:.
create procedure NOMBREPROCEDIMIENTO
@PARAMETROENTRADA TIPO =VALORPORDEFECTO,
@PARAMETROSALIDA TIPO=VALORPORDEFECTO output
as SENTENCIAS select @PARAMETROSALIDA=SENTENCIAS;

Ejemplo de Procemientos con


Parmetros de Salida
Crear un procedimiento almacenado al cual le enviamos 3 nmeros y
retorna el promedio de dichos nmeros:

create procedure promedio


@n1 decimal(4,2),
@n2 decimal(4,2),
@n3 decimal(4,2),
@resultado decimal(4,2) output
as
select @resultado=(@n1 + @n2 + @n3)/3;;

Ejecutar un Procemientos con


Parmetros de Salida
Al ejecutarlo tambin debe emplearse "output":
declare @variable decimal(4,2)
execute promedio 3,3,3, @variable output
select @variable;
Se declara una variable para guardar el valor devuelto por el
procedimiento.
Se ejecuta el procedimiento envindole 3 valores y mostramos el
resultado.
La instruccin que realiza la llamada al procedimiento debe contener
un nombre de variable para almacenar el valor retornado.