Está en la página 1de 2

create database ejemplo_stock;

go
use ejemplo_stock;
go
create table producto
(id int not null,
nombre varchar(20)not null,
fecha_vecimiento date null
)
go
alter table producto
add primary key (id)
go
alter table producto
add stock int
go
create table venta(
id_venta int not null,
id int not null,
fecha_venta date null)
go
alter table venta
add primary key(id_venta)
go
alter table venta
add foreign key (id) references producto(id)
-----Agregar campo cantidad
alter table venta
add cantidad int not null
-------borrar un campo
alter table venta
drop column cantidad
--------- insertar productos
create proc insertar_producto
@id int,@nombre varchar(20),@fecha_ven date,@stock int
as
begin
insert into producto (id,nombre,fecha_vecimiento,stock) values(@id,@nombre,@fech
a_ven,@stock)
end
--executamos el procedimiento
execute insertar_producto 2,'Laca Alberto VO5','2016-12-09',7
---------------- Procedimiento Almacenado para ventas
create proc realiza_ventas
@id_venta int , @id_prod int , @fechaventa date, @cant int
as
begin
insert into venta (id_venta,id,fecha_venta,cantidad)
values (@id_venta, @id_prod, @fechaventa, @cant)

end
--------executar procedmiento
execute realiza_ventas 4,2,'2015-05-03',1
select * from producto
----------------------------------------------------select * from producto
--Trigger para Disminuir stock
create trigger disminuir_stock on venta
for insert
as
Declare @stock int
select @stock= p.stock from producto as p join inserted as i on i.id=p.id
where p.id= i.id
if(@stock>=(select cantidad from inserted))
update producto set producto.stock =producto.stock - inserted.cantidad from prod
ucto
join inserted on inserted.id = producto.id where producto.id=inserted.id
else
begin
raiserror ('Hay menos cantidad del producto que lo que se ha solicitado',16,1)
rollback transaction
end
-----------------aumentar stock-------------update producto set stock = 7 where id=2
select * from producto

También podría gustarte