0% encontró este documento útil (0 votos)
27 vistas3 páginas

Trigger

El documento crea una base de datos con tablas de categorías, marcas y productos. También incluye procedimientos almacenados para comprar, vender y actualizar productos, y triggers para registrar cambios en la tabla de productos.

Cargado por

edisonmedina301
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como TXT, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
27 vistas3 páginas

Trigger

El documento crea una base de datos con tablas de categorías, marcas y productos. También incluye procedimientos almacenados para comprar, vender y actualizar productos, y triggers para registrar cambios en la tabla de productos.

Cargado por

edisonmedina301
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como TXT, PDF, TXT o lee en línea desde Scribd

use master

go

create database bdvgde


go

use bdvgde
go

create table categoria


(
idcategoria int identity (1,1) primary key,
nombre nvarchar(50) not null,
estado bit
)
go
insert into categoria(nombre,estado) values ('ferreteria',1)
insert into categoria(nombre,estado) values ('verduras',1)
insert into categoria(nombre,estado) values ('electrodomesticos',1)

create table marca


(
idmarca int identity(1,1) primary key,
nombremarca nvarchar(50) not null,
estado bit
)
go
insert into marca(nombremarca,estado) values ('philips',1)
insert into marca(nombremarca,estado) values ('toyota',1)
insert into marca(nombremarca,estado) values ('suzuki',1)
insert into marca(nombremarca,estado) values ('tramontina',1)
go

create table producto


(
idproducto int IDENTITY(100,1) PRIMARY KEY ,
idcategoria int not null foreign key references categoria(idcategoria),
idmarca int not null foreign key references marca(idmarca),
codigo char(10),
nombre nvarchar(50) null,
precio float not null,
cantidad int not null,
estado bit
)
go

insert into producto(idcategoria,idmarca,codigo,nombre,precio,cantidad,estado)


values(1,1,'C001','alicate',11,0,1)
insert into producto(idcategoria,idmarca,codigo,nombre,precio,cantidad,estado)
values(2,1,'C002','martillo',22,0,1)
insert into producto(idcategoria,idmarca,codigo,nombre,precio,cantidad,estado)
values(1,1,'C003','tenaza',33,0,1)
insert into producto(idcategoria,idmarca,codigo,nombre,precio,cantidad,estado)
values(1,1,'C004','carretilla',44,0,1)
insert into producto(idcategoria,idmarca,codigo,nombre,precio,cantidad,estado)
values(1,1,'C005','lija',22,0,1)
insert into producto(idcategoria,idmarca,codigo,nombre,precio,cantidad,estado)
values(1,1,'C006','llave crecen',32,0,1)
go

select * from producto


select * from categoria
select * from marca

-- crear un procedimiento almacenado


create proc compraproducto
@codigoproducto char (10),
@cantidadcomprada int
as
update producto set cantidad = cantidad + @cantidadcomprada where codigo =
@codigoproducto
go

-- ejecutando el procedimiento almacenado


exec compraproducto 'C002',10

exec compraproducto 'C002',7

SELECT * FROM producto


go
-- ventas de productos
create proc ventaproducto
@codigoproducto char (10),
@cantidadvendida int
as
update producto set cantidad = cantidad - @cantidadvendida where codigo =
@codigoproducto
go

--ejecutar el procedimiento almacenado ventaproducto


exec ventaproducto 'C002',1
exec ventaproducto 'C002',5

select * from producto

--CREAR UNA TABLA HISTORIAL


create table historial
(
codigo char (10),
fecha date,
descripcion nvarchar(100),
usuario nvarchar(10)
)

-- TRIGGER
create trigger tr_productoinsertado
ON producto
for INSERT
AS
BEGIN
set nocount on
declare @cod_prod varchar(10) -- declarando una variable
select @cod_prod = codigo from inserted -- se almacena el codigo en la variable
cod_prod del registro nuevo
insert into historial values (@cod_prod,GETDATE(),'Se ha registrado un nuevo
producto',SYSTEM_USER)
END

select * from producto


select * from historial

insert into producto(idcategoria,idmarca,codigo,nombre,precio,cantidad,estado)


values(3,2,'C111','pala tramontina',1,1,1)

select * from categoria

----------------------------
select * from producto

-- TRIGGER
create trigger tr_productoeliminado
ON producto
for delete
AS
BEGIN
set nocount on
declare @cod_prod varchar(10) -- declarando una variable
select @cod_prod = codigo from deleted -- se almacena el codigo en la variable
cod_prod del registro a eliminar
insert into historial values (@cod_prod,GETDATE(),'Se ha eliminado un
registro',SYSTEM_USER)
END

--
select * from historial
select * from producto
delete from producto where idproducto = 101

---------------------------------
update producto set cantidad = 0 where idproducto = 108

-- trigger
create trigger tr_productomodificado
ON producto
for update
AS
BEGIN
set nocount on
declare @cod_prod varchar(10) -- declarando una variable
select @cod_prod = codigo from update -- se almacena el codigo en la variable
cod_prod del registro a eliminar
insert into historial values (@cod_prod,GETDATE(),'Se ha eliminado un
registro',SYSTEM_USER)
END

También podría gustarte