procedimientos almacenados en transac SQL

PROCEDIMIENTOS ALMACENADOS EN TRANSAC SQL
procedimiento almacenado (stored procedure en inglés) es un programa (o procedimiento) el cual es almacenado físicamente en una base de datos. Su implementación varía de un gestor de bases de datos a otro. La ventaja de un procedimiento almacenado es que al ser ejecutado, en respuesta a una petición de usuario, es ejecutado directamente en el motor de bases de datos, el cual usualmente corre en un servidor separado. Como tal, posee acceso directo a los datos que necesita manipular y sólo necesita enviar sus resultados de regreso al usuario, deshaciéndose de la sobrecarga resultante de comunicar grandes cantidades de datos salientes y entrantes.

He aqui les enseñare como crear un procedimiento almacenado
//crear un procedimiento almacenado

create procedure addcliente
@id_cliente int,@nombre varchar(50),@apellidos varchar(50),@dni char(8)
as
insert into cliente
(id_cliente,nombre,apellidos,dni)
values(@id_cliente,@nombre,@apellidos,@dni)

//ejecurar el procedimiento almacenado

exec addcliente 3,'Peter','Herrante Sanchez',41524789
exec addcliente 4,'jefry','Ramirez calderon',45507941

//las intrucciones del procedure deben estar dentro de un bloque try catch y controlados por una transaccion
// para insertar clientes a la BD
alter procedure addcliente
@id_cliente int,
@nombre varchar(50),
@apellidos varchar(50),
@dni char(8)
as
begin try
begin tran
insert into cliente
(id_cliente,nombre,apellidos,dni)
values(@id_cliente,@nombre,@apellidos,@dni)
commit
end try
begin catch
rollback
print error_message()
end catch
// para ejecutar la insercion de clientes a la BD
exec addcliente 4,'Margoth','Rengifo de la Cruz',45508563

//para obtener una cuenta de una persona tal

create procedure obtener cuenta3
@id_cuenta int,
@cantidad decimal(9,2)output
as
begin
select @cantidad=cantidad
from cuenta
where id_cuenta=@id_cuenta
end

declare @cantidad decimal(9,2)
exec obtenercuenta3 '2',@cantidad output
print @cantidad

//procedimento al macenado para devolver valores

create procedure spu_estaennumerosrojos
@id_cuenta int
as
begin
if(select cantidad
from cuenta
where id_cuenta=@id_cuenta)<100.00
begin
return 1
end
else
return 0
end

//procedimiento almacenado q devuelve un conjunti de datos

create procedure spu_movimientoscuenta
@id_cuenta int
as
begin
select @id_cuenta,
cantidad
id_cliente
from transaccion inner join cuenta
on transaccion.id_cuenta=cuenta.id_cuenta
where cuenta.id_cuenta=@id_cuenta
order by cantidad desc
end
exec spu_movimientoscuenta

---






No hay comentarios:

Publicar un comentario

Tienes dudas y consultas sobre como posicionar una pagina web en google en primeros lugares.

Consulta con Nosotros :