Está en la página 1de 3

Create DataBase Ferreteria

go
use Ferreteria
Go
Create Table Proveedor
(Cod_Proveedor varchar(5) primary key,
Nombre_Proveedor varchar(50) unique,
Nombre_Contacto varchar(50),
Cargo_Contacto varchar(10),
Direccion varchar(50),
Ciudad varchar(50),
Region varchar(20),
Pais varchar(20),
Telefono varchar(15),
Fax varchar(15)
)
Go
Create Table Cliente
(Cod_Cliente int identity(1,1),
Nombre_Cliente varchar(50),
DNI varchar(8) unique,
Ciudad varchar(20),
Estado_Civil varchar(1) constraint ch_Estado Check (Estado_Civil in ('S','C','V'
)),
Sexo varchar(1) constraint ch_Sexo check (Sexo in ('F','M')),
Telefono varchar(15)
constraint pk_Cliente primary key (Cod_Cliente)
)
Go
Create Table Producto
(Cod_Producto varchar(5),
Descripcion varchar(50),
Stock int constraint ch_Stock Check (Stock between 1 and 100),
Precio numeric(18,2),
Cod_Proveedor varchar(5) constraint fk_proveedor_producto foreign key (Cod_Prove
edor) references Proveedor (Cod_Proveedor),
constraint pk_Producto primary key (Cod_Producto)
)
Go
Create Table Comprobante
(Nro_Comprobante int identity(1,1),
Fecha_Emi datetime default getdate(),
Sub_Total numeric(18,2),
IGV numeric(18,2),
Total numeric(18,2),
Cod_Cliente int constraint fk_compro_cli foreign key (Cod_Cliente) references Cl
iente (Cod_Cliente),
constraint pk_Comprobante primary key (Nro_Comprobante)
)

Go
Create Table Det_Comprobante_Producto
(Cod_Producto varchar(5) constraint fk_det_producto foreign key (Cod_Producto) r
eferences Producto (Cod_Producto),
Nro_Comprobante int constraint fk_det_comprobante foreign key (Nro_Comprobante)
references Comprobante (Nro_Comprobante),
Descripcion varchar(50),
Cant_Com int,
Precio_Com numeric(18,2),
Monto_com numeric(18,2),
constraint pk_Det_Compro_Produc primary key (Cod_Producto,Nro_Comprobante)
)
-----TRIGGER
GO
CREATE TRIGGER TR_InsertaDet_Comprobante
ON Det_Comprobante_Producto
FOR INSERT
AS
BEGIN
DECLARE @Cod_Producto VARCHAR(5),@Cant_Com INT
SELECT @Cod_Producto=Cod_Producto,@Cant_Com=Cant_Com FROM INSERTED
UPDATE PRODUCTO
SET STOCK=STOCK-@Cant_Com
WHERE Cod_Producto=@Cod_Producto
END
GO
CREATE TRIGGER TR_EliminaDet_Comprobante
ON Det_Comprobante_Producto
FOR DELETE
AS
BEGIN
DECLARE @Cod_Producto VARCHAR(5),@Cant_Com INT
SELECT @Cod_Producto=Cod_Producto,@Cant_Com=Cant_Com FROM DELETED
UPDATE PRODUCTO
SET STOCK=STOCK+@Cant_Com
WHERE Cod_Producto=@Cod_Producto
END
-----------------------------------------------------------------Insert into Proveedor
values ('001','Juan','Juancho','Gerente','San Juan','Lima','Lima','Peru','258054
0','4465'),
('002','Rodrigo','Rodri','Vendedor','Lomas','Lima','Lima','Peru','2450230','254
2')
Go
Insert Into Producto

values ('001','Alambre',20,5.00,'001'),
('002','Cable',30,2.00,'001'),
('003','Clavos',10,2.00,'002'),
('004','Taladro',15,7.00,'001'),
('005','Martillo',20,3.00,'002'),
('006','Sierra',10,7.00,'002'),
('007','Lampa',13,8.00,'001'),
('008','Aluminio',30,6.00,'001'),
('009','Wincha',14,4.00,'002'),
('010','Cemento',40,8.00,'001')
Go
Insert into Cliente (Nombre_Cliente,DNI,Ciudad,Estado_Civil,Sexo,Telefono)
values ('Christian','46235193','Lima','S','M','4193260,'),
('Pablo','40125236','Lima','C','M','4454048,'),
('Carlos','00245856','Caete','C','M','2580720,'),
('Diego','49532653','Lima','S','M','2850567,'),
('Sandy','24586356','Chincha','S','F','4563296,')
Go
Insert Into Comprobante(Sub_Total,IGV,Total,Cod_Cliente)
values (50.00,9.50,59.50,1),
--(14.00,2.66,16.66,18),
--(18.00,3.42,21.42,19)
--Go
Insert Into Det_Comprobante_Producto
values ('001',1,'Alambre',10,50.00,59.50),
--('002',2,'Cable',7,14.00,16.66),
--('003',2,'Clavos',9,18.00,21.42)