Procedimientos Almacenados en SQL Server 2014

/*ejemplos de procedimientos almacenados*/
--procedimiento almacenado sin parametros
create procedure usp_listarproductos
as
begin
select p.IdProducto as codigo,
p.NomProducto as NombreProducto,
c.Descripcion as Categoria,
p.PrecioUnidad as Precio,
p.UnidadesEnExistencia as Stock,
r.NomProveedor as Proveedor
from Compras.productos p join compras.categorias c
on p.IdCategoria = c.IdCategoria
join Compras.proveedores r
on p.IdProveedor = r.IdProveedor
end
--ejecutar
exec usp_listarproductos
--procedimientos almacenados con parametros
/*select*/
create procedure usp_tot_stockcategorias
@nomcate varchar(15)
as
select c.NombreCategoria, sum(p.UnidadesEnExistencia)
as 'Total Stock'
from compras.productos p inner join compras.categorias c
on p.IdCategoria = c.IdCategoria
where c.NombreCategoria=@nomcate
group by c.NombreCategoria
--ejecutar
execute usp_tot_stockcategorias 'Bebidas'
go
/*insert*/
create procedure usp_agregar_clientes
@codclie varchar(5),
@nom varchar(40),
@dir varchar(60),
@codpais char(3),
@fono varchar(25)
as
insert into Ventas.clientes
values(@codclie,@nom,@dir,@codpais,@fono)
IF (@@ERROR=0)
begin
print 'Se registro el cliente satisfactoriamente'
end
ELSE
begin
print 'Se produjeron errores al registrar'
end
--ejecutar
exec usp_agregar_clientes
'JMP01','Juana Martel Palacios','Av. Los sss 344','001','999152478'
/*update*/
create procedure usp_actualizar_clientes
@nom varchar(40),
@dir varchar(60),
@codpais char(3),
@fono varchar(25),
@codclie varchar(5)
as
update ventas.clientes set NomCliente=@nom, DirCliente=@dir,
idpais=@codpais, fonoCliente=@fono where IdCliente=@codclie
if (@@ERROR=0)
begin
print 'Se actualizo el registro satisfactoriamente'
end
else
begin
print 'No se pudo actualizar'
end
/*delete*/
create procedure usp_borrar_clientes
@codclie varchar(5)
as
delete from ventas.clientes where IdCliente=@codclie
if (@@ERROR=0)
begin
print 'Se borro satisfactoriamente el cliente'
end
else
begin
print 'No se pudo borrar el cliente'
end
--ejecutar
exec usp_borrar_clientes 'ANTON'

/*ejemplo con: @@ROWCOUNT*/
create proc usp_listar_clientes
@cod varchar(5)
as
select * from ventas.clientes
where IdCliente=@cod
if (@@ROWCOUNT<>0)
begin
print 'Se encontro el cliente'
end
else
begin
print 'No se pudo encontrar el cliente'
end
--ejecutar
exec usp_listar_clientes 'BOLID'
exec usp_listar_clientes 'WERGB'
go
--procedimientos almacenados con parametros de salida
create proc usp_cantidad_clientes
@c int output
as
select @c = count(*)
from ventas.clientes
go
--ejecutar: output
declare @c int
execute usp_cantidad_clientes @c = @c output
--print 'Cantidad de Clientes: ' + cast(@c as varchar)
print 'Cantidad de Clientes: ' + str(@c)

/*procedimientos almacenados con cursores*/
create procedure usp_ListarCategoriasCursor
as
begin
declare @id int, @nom varchar(15), @des varchar(100)
declare cCategoria cursor for
select IdCategoria, NombreCategoria, Descripcion from compras.categorias
open cCategoria
fetch cCategoria into @id, @nom, @des
while (@@FETCH_STATUS=0)
begin
print str(@id) + ' ' + @nom + ' ' + @des
fetch cCategoria into @id, @nom, @des
end
close cCategoria
deallocate cCategoria
end
--ejecutar
execute usp_ListarCategoriasCursor
go
--ejemplo2:
create proc usp_ListarPedidosFechas
@fi date,
@ff date
as
declare @cod int, @codclie varchar(5), @fecha date, @pais varchar(60)
declare cPedidos cursor for
select IdPedido, IdCliente, FechaPedido, PaiDestinatario
from Ventas.pedidoscabe
where FechaPedido between @fi and @ff
open cPedidos
fetch cPedidos into @cod, @codclie, @fecha, @pais
while @@FETCH_STATUS=0
begin
print cast(@cod as varchar) + space(5) + ' ' + @codclie + ' ' +
cast(@fecha as varchar) + ' ' + @pais
fetch cPedidos into @cod, @codclie, @fecha, @pais
end
close cPedidos
deallocate cPedidos
--ejecutar
exec usp_ListarPedidosFechas '01-01-1996','31-07-1996'

Comentarios

Entradas populares

Ejercicios Consola Visual Basic.NET

Numero Capicua Visual Basic

Procedimientos Almacenados ORACLE