简单的触发器

有两个表a,b;二者多对一的关系。其中a表的一个字段数据需要根据b表的一个字段来确定
新增时,业务逻辑是
a对应的b , 可能为空;可能为X级;可能为Y级。
如果b为空,则 a的“入选否” 的值肯定为 否;
如果b是X级,则 a的“入选否” 的值肯定为 否;
如果b是Y级,则 a的“入选否” 的默认值为 是;
修改时,业务逻辑是
如果b为空,则 a的“入选否” 的值应为false;
如果b是X级,则 a的“入选否” 的值应为false;
如果b是Y级,则 a的“入选否” 的值就是用户在界面设置的值。
新增时的触发器

create Trigger [dbo].[T_INSERT_APPLY_PROJECTF_FOR_is_nation]
on [dbo].[APPLY_PROJECT]
for INSERT
as
declare @nation varchar(2)
select @nation=APPROVE_PROJECT.is_nation from dbo.APPROVE_PROJECT,APPLY_PROJECT where APPROVE_PROJECT.id=APPLY_PROJECT.approve_project_id and APPLY_PROJECT.id in (select id from inserted)
if @nation is not null and @nation ='是'
update APPLY_PROJECT
set is_nation='是'
where APPLY_PROJECT.id in (select id from inserted)
else
update APPLY_PROJECT
set is_nation = '否'
where APPLY_PROJECT.id in (select id from inserted)


修改时的触发器

create Trigger [dbo].[T_UPDATE_APPLY_PROJECTF_FOR_is_nation]
on [dbo].[APPLY_PROJECT]
for UPDATE
as
begin
if update(approve_project_id) or update(is_nation)
declare @nation varchar(2)
select @nation=APPROVE_PROJECT.is_nation from dbo.APPROVE_PROJECT,APPLY_PROJECT where APPROVE_PROJECT.id=APPLY_PROJECT.approve_project_id and APPLY_PROJECT.id in (select id from deleted)
if @nation is null or @nation <>'是'
update APPLY_PROJECT
set APPLY_PROJECT.is_nation='否'
where id in (select id from deleted)
end
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值