Ayuda con Triggers
Publicado por Arturo (2 intervenciones) el 21/05/2013 19:47:15
Buenos días. Me podrían ayudar con estos 2 triggers
-Actualizar stock actual de productos al realizar 1 pedido
-Impedir registro de productos con el mismo nombre
Mi Script de Base de Datos es el sgte.:
create database ABC
go
use ABC
go
create table Proveedores(
IdProveedor char(5) not null primary key,
Nombres varchar(40) not null,
Direccion varchar(50) not null,
Telefono char(9) not null check (len(telefono) between 7 and 9),
Ruc char(11) not null check (len(ruc)=11),
)
create table Clientes(
IdCliente char(5) not null primary key,
Nombres varchar(40) not null,
Direccion varchar(50) not null,
Telefono char(9) not null check (len(telefono) between 7 and 9),
Ruc char(11) not null check (len(ruc)=11),
)
create table Categorias(
IdCategoria char(5) not null primary key,
Categoria varchar(30) not null,
)
create table Productos(
IdProducto char(5) not null primary key,
Descripcion varchar(40) not null,
Stock int not null,
Precio decimal(10,2) not null,
IdProveedor char(5) not null foreign key references Proveedores (IdProveedor),
IdCategoria char(5) not null foreign key references Categorias (IdCategoria),
Estado varchar(20) not null check (Estado = 'Vigente' or Estado = 'Descontinuado') default 'Vigente'
)
create table Pedidos(
IdPedido char(5) not null primary key,
FechaPedido date not null,
IdCliente char(5) not null foreign key references Clientes (IdCliente)
)
create table DetallePedido (
IdPedido char(5) not null foreign key references Pedidos (IdPedido),
IdProducto char(5) not null foreign key references Productos (IdProducto),
Cantidad int not null,
PrecioVenta decimal(10,2) not null default 0
primary key (IdPedido,IdProducto)
)
--inserción de datos
insert Proveedores values ('P0001','Gloria S.A.','Av. Peru 120',2572839,10431513124)
insert Proveedores values ('P0002','Pura Vida S.A.','Av. Lima 230',997856477,10445131248)
insert Proveedores values ('P0003','Anchor S.A.','Av. Ugarte 545',6572839,10994513124)
insert Proveedores values ('P0004','Soy Vida S.A.','Av. Guia 12',4572865,10578966775)
insert Proveedores values ('P0005','Prodeco S.A.','Av. Arequipa 420',7872839,10431565784)
insert Clientes values ('C0001','Arturo Revilla','Av. de los Heros 109',2432233,10908765432)
insert Clientes values ('C0002','Brenda Orihuela','Av. Algarrobos 987',5432233,10848485432)
insert Clientes values ('C0003','Valentin Guzman','Av. Arenales 123',2092233,10989765432)
insert Clientes values ('C0004','Carlos Soto','Av. Del Rio 890',9432233,10912365432)
insert Clientes values ('C0005','Karen Sanchez','Av. Petit Thouars 123',2782233,10932565432)
insert Categorias values ('CA001','Lacteos')
insert Categorias values ('CA002','Bebidas')
insert Categorias values ('CA003','Embutidos')
insert Categorias values ('CA004','Comestibles')
insert Categorias values ('CA005','Otros')
insert Productos values ('P0001','Leche Anchor',20,1.5,'P0001','CA001',DEFAULT)
insert Productos values ('P0002','Leche Pura Vida',50,1.2,'P0002','CA001',DEFAULT)
insert Productos values ('P0003','Yogurt Bebible',100,4,'P0003','CA002',DEFAULT)
insert Productos values ('P0004','Galleta Oreo',200,0.50,'P0005','CA004',DEFAULT)
insert Productos values ('P0005','Chorizo',10,2.5,'P0004','CA003',DEFAULT)
insert Pedidos values ('PE001','12/12/2012','C0001')
insert Pedidos values ('PE002','11/12/2012','C0002')
insert Pedidos values ('PE003','05/06/2012','C0003')
insert Pedidos values ('PE004','07/04/2012','C0004')
insert Pedidos values ('PE005','05/08/2012','C0005')
insert DetallePedido values ('PE001','P0001',3,DEFAULT)
insert DetallePedido values ('PE001','P0002',4,DEFAULT)
insert DetallePedido values ('PE002','P0003',3,DEFAULT)
insert DetallePedido values ('PE002','P0001',6,DEFAULT)
insert DetallePedido values ('PE001','P0005',3,DEFAULT)
-- Para Calcular Precio de Venta en tabla DetallePedido
update DetallePedido set PrecioVenta = Cantidad * Precio from Productos
where Productos .IdProducto = DetallePedido .IdProducto
Gracias de antemano...
-Actualizar stock actual de productos al realizar 1 pedido
-Impedir registro de productos con el mismo nombre
Mi Script de Base de Datos es el sgte.:
create database ABC
go
use ABC
go
create table Proveedores(
IdProveedor char(5) not null primary key,
Nombres varchar(40) not null,
Direccion varchar(50) not null,
Telefono char(9) not null check (len(telefono) between 7 and 9),
Ruc char(11) not null check (len(ruc)=11),
)
create table Clientes(
IdCliente char(5) not null primary key,
Nombres varchar(40) not null,
Direccion varchar(50) not null,
Telefono char(9) not null check (len(telefono) between 7 and 9),
Ruc char(11) not null check (len(ruc)=11),
)
create table Categorias(
IdCategoria char(5) not null primary key,
Categoria varchar(30) not null,
)
create table Productos(
IdProducto char(5) not null primary key,
Descripcion varchar(40) not null,
Stock int not null,
Precio decimal(10,2) not null,
IdProveedor char(5) not null foreign key references Proveedores (IdProveedor),
IdCategoria char(5) not null foreign key references Categorias (IdCategoria),
Estado varchar(20) not null check (Estado = 'Vigente' or Estado = 'Descontinuado') default 'Vigente'
)
create table Pedidos(
IdPedido char(5) not null primary key,
FechaPedido date not null,
IdCliente char(5) not null foreign key references Clientes (IdCliente)
)
create table DetallePedido (
IdPedido char(5) not null foreign key references Pedidos (IdPedido),
IdProducto char(5) not null foreign key references Productos (IdProducto),
Cantidad int not null,
PrecioVenta decimal(10,2) not null default 0
primary key (IdPedido,IdProducto)
)
--inserción de datos
insert Proveedores values ('P0001','Gloria S.A.','Av. Peru 120',2572839,10431513124)
insert Proveedores values ('P0002','Pura Vida S.A.','Av. Lima 230',997856477,10445131248)
insert Proveedores values ('P0003','Anchor S.A.','Av. Ugarte 545',6572839,10994513124)
insert Proveedores values ('P0004','Soy Vida S.A.','Av. Guia 12',4572865,10578966775)
insert Proveedores values ('P0005','Prodeco S.A.','Av. Arequipa 420',7872839,10431565784)
insert Clientes values ('C0001','Arturo Revilla','Av. de los Heros 109',2432233,10908765432)
insert Clientes values ('C0002','Brenda Orihuela','Av. Algarrobos 987',5432233,10848485432)
insert Clientes values ('C0003','Valentin Guzman','Av. Arenales 123',2092233,10989765432)
insert Clientes values ('C0004','Carlos Soto','Av. Del Rio 890',9432233,10912365432)
insert Clientes values ('C0005','Karen Sanchez','Av. Petit Thouars 123',2782233,10932565432)
insert Categorias values ('CA001','Lacteos')
insert Categorias values ('CA002','Bebidas')
insert Categorias values ('CA003','Embutidos')
insert Categorias values ('CA004','Comestibles')
insert Categorias values ('CA005','Otros')
insert Productos values ('P0001','Leche Anchor',20,1.5,'P0001','CA001',DEFAULT)
insert Productos values ('P0002','Leche Pura Vida',50,1.2,'P0002','CA001',DEFAULT)
insert Productos values ('P0003','Yogurt Bebible',100,4,'P0003','CA002',DEFAULT)
insert Productos values ('P0004','Galleta Oreo',200,0.50,'P0005','CA004',DEFAULT)
insert Productos values ('P0005','Chorizo',10,2.5,'P0004','CA003',DEFAULT)
insert Pedidos values ('PE001','12/12/2012','C0001')
insert Pedidos values ('PE002','11/12/2012','C0002')
insert Pedidos values ('PE003','05/06/2012','C0003')
insert Pedidos values ('PE004','07/04/2012','C0004')
insert Pedidos values ('PE005','05/08/2012','C0005')
insert DetallePedido values ('PE001','P0001',3,DEFAULT)
insert DetallePedido values ('PE001','P0002',4,DEFAULT)
insert DetallePedido values ('PE002','P0003',3,DEFAULT)
insert DetallePedido values ('PE002','P0001',6,DEFAULT)
insert DetallePedido values ('PE001','P0005',3,DEFAULT)
-- Para Calcular Precio de Venta en tabla DetallePedido
update DetallePedido set PrecioVenta = Cantidad * Precio from Productos
where Productos .IdProducto = DetallePedido .IdProducto
Gracias de antemano...
Valora esta pregunta


0