我是靠谱客的博主 强健战斗机,最近开发中收集的这篇文章主要介绍sql触发器,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

/*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;

 

转载于:https://www.cnblogs.com/zhanying/p/3399223.html

最后

以上就是强健战斗机为你收集整理的sql触发器的全部内容,希望文章能够帮你解决sql触发器所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部