有两个表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的“入选否” 的值就是用户在界面设置的值。
新增时的触发器
修改时的触发器
新增时,业务逻辑是
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