您的位置:首页 > 数据库

sql触发器

2013-10-31 14:14 323 查看
/*1,建商品表(Store),订单表(orders),日志表(Logs)

    2,创建订单表插入触发器,实现插入一条订单信息,商品表中商品数量相应减少,订单中的总金额相应增加。

    3,创建订单表更新触发器,实现更新一条订单信息,商品表中商品数量相应变化,订单中的总金额相应变化。(和2类似)

    4,创建日志表触发器,实现更新商品表价格变化情况。
*/
use samp
go
create table Store
(
id uniqueidentifier primary key,
productid int not null,
productprice money not null default 1,
productch nvarchar(80) not null,
productdate datetime not null,
nownumber int not null
);
create table orders
(
orderid int primary key,
productid int not null,
buynumber int not null default 1,
buypricr money not null,
noworderprice money default 0
)
create table logs
(
id uniqueidentifier primary key,
operatedatetime datetime,
productid int ,
oldprice money,
newprice money
)
insert into store values(newid(),1001,5000,'联想','2013-5-6',50)
insert into store values(newid(),1002,6000,'apple','2013-5-6',50)
insert into orders(orderid,productid,buynumber,buypricr)
values(10013,1001,5,6000)
--select * from store left join  orders on store.productid=orders.productid
--创建触发器
/*2,创建订单表插入触发器,实现插入一条订单信息,商品表中商品数量相应减少,订单中的总金额相应增加。

    3,创建订单表更新触发器,实现更新一条订单信息,商品表中商品数量相应变化,订单中的总金额相应变化。(和2类似)

    4,创建日志表触发器,实现更新商品表价格变化情况。
*/
create trigger tri_order_noworderprice
on orders after insert
as
begin
declare @noworderprice money;
declare @buynumber int;
declare @productid int;
select @productid=productid,@buynumber=buynumber from inserted;
select @noworderprice=inserted.buynumber*inserted.buypricr from inserted;
update orders set noworderprice=@noworderprice where productid=@productid;
update store set nownumber=nownumber-@buynumber where productid=@productid;
end;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: