SQL触发器。当我一个数据库中的一个表更新一个信息,另个表插入一个条信息怎么写

SQL触发器。当我一个数据库中的一个表更新一个信息,另个表插入一个条信息怎么写,第1张

假设有两张表,一张为 *** 作记录表tbA(MyID,MyX,MyY),一张为账户余额表tbB(MyID,MySum)

MyID:int类型

MyX:money类型

MyY:int类型(-1取钱,1存钱)

MySum:money类型

我想在我记录存入多少钱的同时,在余额表里的MySum里的数据也更着改变,而我们也不需要对余额有任何 *** 作

示例代码如下:

create trigger MyMoneyTrg

on tbA

for insert,update

as

declare @ID int,

@X money,

@Y int

begin

select @ID=MyID,@X=MyX,@Y=MyY from inserted

--这里从inserted表里取到了更新的必要数据,inserted表是更新的数据暂时存放的表,触发器执行结束这个表就消失了

update tbB set MySum=(@X@Y+Mysum) where MyID=@ID

end

这个范例能在触发器的作用\方法\语法等方面描述触发器,希望这位同学能举一反三

先判断是否存在,存在就更新IFEXISTS(SELECT1FROMsys_empa,insertedbjoinhr_emp_titleconbempid=cempid)BEGINupdatecsetctitle_code=btitle_codefrominsertedbjoinhr_emp_titleconbempid=cempidEND不存在就插入ELSEBEGINinsertintohr_emp_title(empid,title_code)selectempid,title_codefrominserted;END

在触发器中有2个表,inserted,deleted

inserted表:用来存储INSERT和UPDATE语句所影响的行的副本。意思就是在inserted表中临时保存了被插入或被更新后的记录行。在执行 INSERT 或UPDATE 语句时,新加行被同时添加到inserted表和触发器表中。因此,可以从inserted表检查插入的数据是否满足需求,如不满足则回滚撤消 *** 作。

deleted表:用来存储DELETE和UPDATE语句所影响行的副本。意思是在delete表中临时保存了被删除或被更新前的记录行。在执行 DELETE 或 UPDATE 语句时,行从触发器表中删除,并传到deleted表中。所以可以从deleted表中检查删除的数据行是否能删除。

create

trigger

a1_a

on

[dbo][a1]

for

insert

as

insert

into

bdbob1(g,h,j)

select

c

as

g,d

as

h,e

as

j

from

inserted

在a数据库a1表,加上面的触发器(只限于同一台服务器不通数据库数据转存),如果要在不同的服务器上,就先在a所在服务器上加链接服务器,触发器修改为:

create

trigger

a1_a

on

[dbo][a1]

for

insert

as

insert

into

[server

name]bdbob1(g,h,j)

select

c

as

g,d

as

h,e

as

j

from

inserted

这个用触发器处理比较好

你可以创建一个插入触发器,当插入数据时将id 自动更新为要修改的值

类别如下其中inserted为触发器中的临时表,其结构与原表一样,保存新插入或修改後的数据。

create trigger insert_a_tri on A after insert as

update A set Aid = 'A' + Aid from inserted b where Aid = bid and adatetime = bdatetime and atestno = btestno

以上就是关于SQL触发器。当我一个数据库中的一个表更新一个信息,另个表插入一个条信息怎么写全部的内容,包括:SQL触发器。当我一个数据库中的一个表更新一个信息,另个表插入一个条信息怎么写、达蒙数据库sql不存在插入,存在更新、SQL Server里触发器里的语句如何读取到新插入的数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9508389.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存