-
请教怎么写这个触发器,谢谢!5
需求描述:有以下两个表TableA( id, type,--类型 plandate--计划时间,varchar(10) ) TableB( Fid,--外键,和TableA中的ID关联 realdate--实际日期,varchar(10) )
TableA的记录会和TableB中的记录一一对应。
当TableB中的字段realdate发生改变时(insert的时候不算),判断realdate的值是否小于TableA中plandate的的值,如果小于,执行触发器,将TableA中的type赋值“10”;如果不小于,则不执行触发器。
请教一下如何写这个语句,刚学习触发器,希望能回复完整的sql,谢谢!
问题补充:自己学着写了一个,测试没发现什么问题
--创建触发器
Create Trigger t_TableB_bykmd
On TableB
for Update
As
if Update(realdate)
begin
if(select COUNT(*) from TableB a, TableA b,inserted c
where a.realdate>b.plandate and a.fid=b.id
and a.fid=c.fid)=1
begin
Update br Set br.type='10'
From TableA br , Inserted ins
Where br.id=ins.fid
end
end2014年6月28日 18:57
2个答案 按时间排序 按投票排序
-
create or replace trigger trigger_temp after update
on TableB
as
begin
DECLARE @realdate_old date,@realdate _new date
SELECT @realdate_old=realdate from deleted ----获取修改前的
SELECT @realdate_new =realdate FROM inserted
if(:@realdate_new< @realdate _old) then
begin
update TableA a set a.type = 10 where a.id = @realdate_new;
end;
end if;
end trigger_temp;
sqlServer 应该不支持new: old:吧 楼主试一下吧2014年6月30日 10:30
-
create or replace trigger trigger_temp after update
on TableB
FOR EACH ROW
begin
if(:new.realdate < old.realdate ) then
begin
update TableA a set a.type = 10 where a.id = :new.Fid;
end;
end if;
end trigger_temp;2014年6月29日 19:24
相关推荐
一个表中的多个同类触发器(INSERT、UPDATE 或 DELETE)允许采取多个不同的对策以响应同一个修改语句。 CREATE 语句,如:CREATE DATABASE、CREATE TABLE、CREATE INDEX 等。 ALTER 语句,如:ALTER DATABASE、ALTER...
本文实例讲述了mysql触发器之创建多个触发器操作。分享给大家供大家参考,具体如下: 这次记录的内容mysql 版本必须得是5.7.2+的哈,之前的会不好使的。废话不多说,咱们开始正文哈。 在mysql 5.7.2+版本之前,我们...
这个例子定义了一个名为`autoSaveTime`的触发器,每当向`bank`表插入新行时,它会在`banklog`表中记录当前时间。 2. **触发器类型**:触发器可以是`BEFORE`或`AFTER`类型,分别在DML操作执行之前或之后触发。 3. ...
RS触发器的一个显著特性是,当S和R输入同时为高电平“1”时,触发器将进入不确定的状态,一般认为这是一个不推荐的操作,因为它会导致输出不稳定。 SR触发器的命名规则与RS触发器相反,但功能上其实与RS触发器一致...
通过这个实验,学习者不仅可以深入理解触发器的工作原理,还能掌握如何在Multisim环境下设计和分析数字电路,这对于提高电路设计和故障排查能力是非常有益的。同时,它也强调了理论知识与实践操作相结合的重要性,是...
在"触发器9.18触发器9.18触发器9.18触发器触发器9.18触发器9.18触发器9.18触发器"这个描述中,可能是在强调某个特定的事件或者场景,例如9月18日的数据库维护或者某个特定的触发器测试。 在大多数关系型数据库系统...
这个标题虽然重复了两次“触发器的一个例子”,但很明显是想要强调这是一个具体的触发器应用实例。通过分析下面给出的代码片段,我们可以理解到该触发器是如何工作的。 ### 描述分析:“触发器拉。//一个例子么。/...
这个触发器将在`AddTable`上的任何`UPDATE`操作完成后执行,打印出一条消息。 2. 修改触发器: 如果需要修改触发器的行为,可以使用`ALTER TRIGGER`语句,如下所示: ```sql ALTER TRIGGER mytrigger ON Add...
在DB2中创建触发器是数据库管理中的一个重要环节,它允许在特定的数据库操作(如INSERT、UPDATE或DELETE)执行之前或之后自动运行预定义的SQL语句。本文将详细介绍如何在DB2数据库中创建一个触发器,以及触发器的...
基于Multisim14,绘制的JK触发器及D触发器构成计数型触发器仿真.
这个触发器将在插入数据之前执行,并将操作信息和时间记录到operate表中。 四、实验步骤 1. 创建 BEFORE INSERT、AFTER UPDATE 和 AFTER DELETE 三个触发器,名称分别为Tproduct_bf_insert、Tproduct_af_update 和...
这个触发器使用了`inserted`表,它是SQL Server为存储插入或更新操作的新记录而创建的一个逻辑表。 第二个触发器`CP_UPDATE`在CP表的`cpbh`字段更新时,同步更新XSCP表中的对应记录。这里使用了`inserted`和`...
在主从JK触发器中,信号的传递需要经过两个触发器,因此会在两个时钟周期之间产生一个延迟,这可以避免由于时钟信号的不确定状态带来的竞争-冒险问题。 首先,了解JK触发器的基本概念和工作原理是必要的。JK触发器...
RS触发器由两个与非门交叉耦合构成,提供置"0"(S=0)、置"1"(R=0)和保持(S=R=1)功能。表5-8-1展示了其功能。要注意的是,当S和R同时为0时,触发器状态不确定,需要避免这种情况。此外,RS触发器也可以用两个或...
JK触发器是数字电路中的一种基本时序逻辑元件,它具有两种稳定状态,可以用来存储一位二进制信息。在本场景中,我们将利用JK触发器设计一...在JK触发器的文件中,可能包含了这个设计的具体电路图或代码,供学习和参考。
RS触发器(Reset-Set Flip-Flop)和SR触发器(Set-Reset Flip-Flop)是数字电子学中非常基础的逻辑电路组件,它们属于触发器的一种类型。...理解这两类触发器的区别对于设计和理解数字电路至关重要。
通过这个实验,我们可以深入理解触发器的工作原理和它们在数字系统中的应用。VHDL描述有助于我们抽象电路逻辑并进行仿真验证。波形仿真结果提供了直观的视觉反馈,帮助我们确认触发器行为是否符合预期。此外,实验还...
在提供的文件名“dff”中,可能包含了这个D触发器设计的VHDL源代码、仿真波形图、综合报告或配置文件。在进一步分析和学习这个设计时,应检查代码的正确性,理解其工作原理,并通过Vivado的仿真功能验证其行为是否...
触发器可以分为四种类型:DML触发器、DDL触发器、替代触发器和数据库事件触发器。 DML触发器是定义在表上的触发器,由DML事件引发。DML事件包括INSERT、UPDATE和DELETE三种。DML触发器可以在 BEFORE 或 AFTER 触发...