当前位置: 代码迷 >> C# >> 这个数据库触发器如何写
  详细解决方案

这个数据库触发器如何写

热度:66   发布时间:2016-05-05 04:23:33.0
这个数据库触发器怎么写?
数据库中有一张会员表,有一张订单表,会员表的ID列是订单表的会员ID列的外键。
现在,要求订单表中某个会员的数据插入、更新、删除时,会员表中的对应会员的总的订单额,就作相应的增减。
这个触发器是怎么写的?
------解决思路----------------------
触发器的基本写法如下:
CREATE TRIGGER 你的触发器名字 ON 表名 AFTER 动作 AS

BEGIN

// sql语句

END
GO


动作就是INSERT、UPDATE、DELETE三种,触发后自动生成inserted和deleted两条记录,该记录结构和你的表结构相同
------解决思路----------------------
这种最好由程序显示控制,触发器有太多不可控因素
------解决思路----------------------
你怎么知道触发器执行成功了没有呢?然后到底什么时候执行结束的呢?你的程序根本没办法知道
------解决思路----------------------
从数据库设计看,保存会员的总订单额不是好的设计。因为它违反了数据库第三常规化(非鍵屬性互相之間應該是無關的)。

第三常规化,用白话说,就是不要重复数据,因为重复数据会造成分歧。
因为‘总订单额’是可以从会员订单表计算出来的,它就是重复数据。

建议你不要用‘触发器’去消除数据分歧,而是采用类似视图的方式来得到统计数字。
如果是本地编辑,你在本地根据差额来计算总订单额。如果需要,提交后再刷新总订单额就可以了。
------解决思路----------------------
目测LZ在做毕业设计或者项目实战的工作,才会搞这样的需求。不然谁敢这么搞,消费记录还要保留呢
  相关解决方案