首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求一触发器,因子表数据而去更改主表解决方法

2012-03-31 
求一触发器,因子表数据而去更改主表主表 A (id,rmk)子表 A_dtl( id,cp,price ,oldprice)主表与子表关联字

求一触发器,因子表数据而去更改主表
主表 A (id,rmk)
子表 A_dtl( id,cp,price ,oldprice)
主表与子表关联字段为:id

现求一触发器:当录入或者修改子表时,要往主表写字段。
条件为:

if (price >oldprice)
update A
set rmk='否'
from A ,A_dtl
where A.id=A_dtl.id

if (price <oldprice)
update A
set rmk='是'
from A ,A_dtl
where A.id=A_dtl.id

要求:
在新增时,要去循环判断子表每一件记录:只有有一条记录price <oldprice,这张单据就要rmk='是',反之:rmk='否';

在修改时,要去循环判断子表每一件记录:只有有一条记录price <oldprice,这张单据就要rmk='是'。反之:rmk='否'


是不是要用启用循环语句进行判断。

[解决办法]
这个在前台做好做啊。
触发器里用EXISTS来判断
[解决办法]

SQL code
create trigger t_dtl on A_dtlfor insert,updateasupdate Aset a.rmk = (case when exists(select 1 from A_dtl where id = a.id and price<oldprice) then '是' else '否' end)from A a,inserted bwhere a.id = b.id 

热点排行