Procedures

CREANDO PROCEDURES
SEMANA 6

--------------------------

use Logistica

go

--

--Creando un Procedimiento de Almacenad

--Lista la tabla Cliente

create procedure sp_listad_ventas

as

select * from Ventas

--Ejecutando el procedimiento

--3 formas

execute sp_listad_ventas

exec sp_listad_ventas

sp_listad_ventas

--------------------------

--Creacion de un procedimiento lista 2 talas, agencia y vendedor

create procedure sp_listado_tablas

as

select * from Agencia

select * from Vendedor

--ejecutar el procedimiento de almacenado

sp_listado_tablas

----

--Crear un procedimiento que permita listar 2 tablas  --ERROR MUY COMUN

create procedure sp_listado_tablas2

as

select * from Agencia

select * from Vendedor

 

exec sp_listado_tablas2

--ERROR ESTO GENERA UN BUCLE INFINITO

--solucionando

--eliminacion del procedimiento almacenado

drop procedure sp_listado_tablas2

--Modificando un procedimiento existente

alter procedure sp_listado_tablas2

as

select * from Agencia

select * from Vendedor

--invocacion correcta

exec sp_listado_tablas2

--

--Invocar dentro de un procedimiento de almacenado a otros SPs

create procedure sp_listado_todos

as

exec sp_listad_ventas

exec sp_listado_tablas

--ejecucion del procedimiento

sp_listado_todos

--

 

--Procedimientos con parametros listar los datos de una agencia determinada

create procedure sp_listado_agencia

@agencia varchar(2)

as

select * from Agencia where c_agencia=@agencia

--ejecutar el procedimiento de almacenado

exec sp_listado_agencia '06'

--

--

--Crear Procedimiento con los datos generales

create procedure sp_datos_ventas

@cod_agencia varchar(2)

as

select vta.n_item,ag.n_agencia,al.n_almacen,p.n_producto,v.n_vendedor,vta.mto_total

from Ventas vta,agencia ag,almacen al,Producto p,Vendedor v

where vta.c_agencia=ag.c_agencia and vta.c_almacen=al.c_almacen and vta.c_producto=p.c_producto

             and vta.c_vendedor=v.c_vendedor and vta.c_agencia=@cod_agencia

--ejecutar el procedimiento

exec sp_datos_ventas '01'

 

---

select * from Almacen

select * from Ventas

select * from Vendedor

select * from Producto

select * from Agencia

--

--creacion de un procedimiento utilizando 2 parametros

create procedure sp_datos

@agencia varchar(2),

@almacen varchar(2)

as

select * from Ventas where c_agencia=@agencia and c_almacen=@almacen

--ejecucion

exec sp_datos '01','A1'

--

--creando un procedimiento que actualice su monto logrado por agencia

select * from Agencia

update Agencia set m_logrado=0

create procedure sp_actualiza_agencia

@agen varchar(2),

@mto money

as

update Agencia

set m_logrado=m_logrado + @mto where c_agencia=@agen

--------------------

--ejecutando

exec sp_actualiza_agencia '04',2153

--

select * from Agencia

--

--actualizar el stock de un producto y de una agencia determinada

--parametros --> cod_prod , cod_alm y stock

select  * from Producto

--

create procedure sp_actualiza_stock

@codpro varchar (2),

@codalm varchar(2),

@stock int

as

update Producto

set c_stock=@stock where c_producto=@codpro and c_almacen=@codalm

--

exec sp_actualiza_stock 'P1','A1',100

--

--Actualizar todos los m_vendido de la tabla vendedor de aquellos que empiecen con las letras

-- L o J actualizar el moto vendido ingresado

--where n_vendedor like '[L,J]%'

select * from vendedor

--

create procedure sp_actualiza_vendido

@mvendido int

as

update vendedor set m_vendido=@mvendido where n_vendedor like '[L,J]%'

--

exec sp_actualiza_vendido '200'

---------------------------

--OTRA FORMA PERO IGUAL

Create Procedure sp_listado_nombre

@nom varchar(20),

@monto money

as

Update vendedor Set m_vendido = m_vendido + @monto

where n_vendedor like '['+@nom+']%'  

-- ********************************************************************

exec sp_listado_nombre 'J,L',1785

the hour is...
 
music
 


MusicPlaylist
Music Playlist at MixPod.com