有两个表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
分享到:
相关推荐
Unity3D教程:简单触发器实现自动开关门创建完毕之后,去掉勾选的MeshRender使得球体变成透明的:Unity3D教程:简单触发器实现自动开关门给这个球
实验六的目的是深入理解Oracle数据库中的触发器,特别是行级触发器的原理和应用。触发器是一种数据库对象,用于在特定的数据操作(如INSERT、DELETE、UPDATE)发生时自动执行预定义的PL/SQL代码,以实现数据一致性、...
`Trigger`对象包含了任务执行的时间策略,比如简单触发器(SimpleTrigger)、cron触发器(CronTrigger)等。简单触发器允许设置间隔时间执行,而cron触发器则可以按照预定义的cron表达式进行复杂的定时安排。 2. **...
简单触发器
简单触发器是SQL Server数据库中一种特殊类型的存储过程,它在特定的数据库操作(如INSERT、UPDATE或DELETE)触发后自动执行。对于SQL初学者来说,理解并掌握触发器的使用是提升数据库管理技能的关键步骤。 1. **...
- **业务规则**:实施复杂的业务逻辑,这些逻辑可能无法通过简单的数据库约束来实现。 - **安全性**:通过触发器控制对数据的访问,防止未经授权的修改。 然而,触发器也存在潜在的问题,如性能影响、隐藏的副作用...
在提供的文件列表中,"SQL Server触发器创建、删除、修改、查看示例步骤(简单教程).txt"应该是详细的操作指南,它会指导你完成上述过程。"说明.txt"可能是关于如何使用这些示例的额外说明。"DBUtility"、"Data"、...
##### 2.1 SimpleTrigger 简单触发器 - **定义**:适用于需要简单触发调度的场景。例如,在给定时间或重复次数下触发作业。 - **特点**: - 支持一次性触发。 - 支持重复触发,可以设置重复次数和重复间隔。 - ...
而简单的与非门或或非门没有这样的存储能力,它们的输出即时响应输入信号的改变。RS触发器通过交叉连接的门电路实现设置和复位,这使得它成为构建更复杂存储和逻辑电路的基础。 总的来说,这个实验报告详细介绍了RS...
触发器在数据库管理系统中扮演着至关重要的角色,它是SQL语言的一部分,主要用于自动化执行某些特定的操作。触发器在数据库层面上提供了对数据更改的细粒度控制,能够响应INSERT、UPDATE和DELETE等操作,从而实现...
基本触发器 钟控触发器 主从触发器 边沿触发器 集成触发器 普通门电路不能保持输出状态,即...基本FF──也叫基本RS—FF,是最简单的FF ,很少单独使用,它是其它复杂触发器的构成单元,或作异步置位,复位端使用。
Oracle触发器是数据库中一种非常重要的对象,它允许在特定的数据库操作(DML:INSERT、UPDATE、DELETE)发生之前或之后执行自定义的逻辑。本文主要针对Oracle触发器的基础知识进行简明扼要的介绍,适合初学者理解和...
通过以上简单的介绍,希望原来没有使用过触发器的朋友能对触发器有个大致的概念和印象,如果你要深入了解的话,SQL SERVER 联机丛书就是你的好帮手。 触发器的应用非常广泛,它可以用来强制复杂的业务规则或要求,...
触发器是数字电路中的核心元件,它具有记忆功能,能够存储和传递二进制信息。在计算机、通信设备和各种电子系统中,触发器扮演着数据存储和...无论是简单的数据存储还是复杂的时序控制,触发器都起着不可或缺的作用。
2. **配置时钟源**:为了模拟时钟信号,我们需要添加一个时钟发生器,例如555定时器或简单振荡器,设定合适的频率以观察边沿触发效果。 3. **设置仿真条件**:在"Simulation Options"中设定启动时间和停止时间,...
### SqlServer触发器调用WebService知识点详解 #### 一、SqlServer触发器简介 ...同时,这种方式也为开发者提供了一种简单的方式来扩展存储过程的功能,使得数据能够更快速、便捷地通过WebService传递到外部系统中。
例如,一个简单的二进制计数器可以用D触发器连接起来,每个触发器的时钟输入都连接到前一个触发器的输出,形成级联,数据输入根据计数规则设定。 在Vivado环境中,这些Verilog模块可以被综合、布局布线,并最终下载...
基本RS触发器是最简单的触发器类型之一,它通过两个交叉耦合的与非门实现。基本RS触发器的特点如下: - **输入信号直接控制输出状态**:当S=1且R=0时,触发器置1;当S=0且R=1时,触发器置0;当S=R=1时,触发器状态...
无论是简单的数据验证还是复杂的业务逻辑,触发器都能提供一种强大而灵活的机制。然而,触发器的设计和实现需要谨慎考虑,以避免性能瓶颈和死锁问题。理解触发器的工作机制和最佳实践对于任何数据库专业人员来说都是...
在SET和RESET为高电平(无效)的情况下,D触发器的行为简单地由D和CLK决定。当CLK上升沿到来且SET和RESET保持高电平时,输出Q将复制输入D的值。 3. 功能表解析: 在SET和RESET都为低电平(有效)的情况下,SET使...