SQL临时表INSERTED和DELETED

SQL2000中,inserted表和deleted表用于储藏对表中数据行的修正消息。他们是引发器厉行时积极创立的,放在内存中,是临时表。当引发器工作告终,它们也被剔除。它们是只读表,不能向它们写入内容。

inserted表:用来存储INSERT和UPDATE语句所波及的行的副本。含义即便在inserted表中临时保留了被插入或被更新后的登记行。在厉行 INSERT 或UPDATE 语句时,新加行被同时增加到inserted表和引发器表中。因而,能够从inserted表察看插入的数据是否中意需求,如不中意则回滚撤消操(cāo)作。

deleted表:用来存储DELETE和UPDATE语句所波及行的副本。含义是在delete表中临时保留了被剔除或被更新前的登记行。在厉行 DELETE 或 UPDATE 语句时,行从引发器表中剔除,并传到deleted表中。因而能够从deleted表中察看剔除的数据行是否能剔除。

因而当表中某条登记的某项值发生改变时,改变前的值曾经穿越系统积极创立的临时表deleted表和inserted表保留了被剔除行或插入的登记行的副本。我们能够从这两个表中查询出改变前的值并赋给变量。

我给你个表对应一下这两临时表的功能:

修正垄断 inserted表 deleted表
添置(INSERT)登记时 储藏新增的登记 不登记
剔除(DELETE)时 不登记 储藏被剔除的登记
修正(UPDATE)时 储藏用来更新的登记 储藏更新前的登记

更新前的值能够从deleted表中查询出来,直接:select * from deleted
“*”能够换成你要查询的列名。
例如:我给个数据备份的,表table2用来做备份表,倩碧前提是表table1中有数据被剔除。
if exists(select name from sysobjects where name = tri_delete)
drop trigger tri_delete
go
create trigger tri_delete on table2
for delete
as
print '开始数据备份.....'
if not exists(select * from sysobjects where name = 'table1')
select * into table1 from deleted---从deleted表中获得被剔除的数据
else
insert into table1 select * from deleted
print '备份获胜,备份表中数据为:'
select * from table1
go
SET NOCOUNT ON ---不揭示T—SQL语句波及的行数
delete table2
---察看收获
select * from table2

delete引发器的标兵利用是数据备份;update引发抬举要用来追寻数据的改变;下面这个即便把改变前后的项的值写入table2的例子,这个例子我假想了2个表table1,table2各有3列,都是Uid,Uname,***且全副批准为空:收获是表2获得改动项前后改变值。
if exists(select name from sysobjects where name = 'tri_test')
drop trigger tri_test
go

create trigger tri_test on table1
for update
as
declare @before*** varchar(8),@after*** varchar(8)
select @before*** = *** from deleted ---改变前的数据
select @after*** = *** from inserted ---改变后的数据
if update(***)
begin
---把改换前后的值写入table2中
insert into table2 (***) values (@before***)
insert into table2 (***) values (@after***)
end
go从报纸到广播到电视,自19世纪以来公众传媒在人们的生存中扮演着日益重要的角色。


跑运输论坛,跑跑运输,搞活经济!!!  (还等什么!!!赶快猛点进入!!!)    跑运输站长博客,跑运输,搞活经济!!!  (还等什么!!!赶快猛点进入!!!)   

聚划算淘宝客外推精选商品、 集结聚划算外推高转化商品     品牌卖家折扣商品推广     天天疯狂购,低至3折,还等 神马     打造第一母婴达人馆,网罗更多母婴商品,为你打造属于你的温馨小屋!     淘宝优秀店铺精选,集合了高佣金高转换率的优秀店铺。     秒杀满立减    齐集淘宝疯狂促销食品、让你买得省心、吃得放心、而且还有高额佣金哦!     淘宝皇冠店铺精选,集合了高佣金高转换率的皇冠 店铺。     淘宝网-亚洲最大、最安全的网上交易平台,提供机票、票务服务,方便您的出行     想看宝岛台湾的时尚动态吗,想观宝岛台湾的潮流前沿吗,一切尽在台湾馆频道,高佣金、高转化,精彩不容错过    淘宝最权威的女装风向标,集合了淘宝最热卖的优质商品,给买家带来全新的购物体验。     淘宝商城,亚洲最大最全最专业的网上购物网站——淘宝网打造的在线B2C购物平台。 淘宝商城频道集合了全球最知名的品牌包括联想、惠普、迪士尼、Kappa、乐扣乐扣、JackJones等,给买家带来全新的一站式购物体验     正品行货保证!精选电器城最优品牌商品,让您有亲临商城的优良购物体验。     引领淘宝数码时尚,为你带来淘宝最受追捧的新潮数码产品,让你追随时尚永不out!     淘宝最权威的鞋包配饰风向标,集合了淘宝最热卖的优质商品,让买家了解每季最时尚的配饰。     淘宝客男人频道,精选淘宝网热销男装,高成交、高佣金、高转化,让您收益节节高!     集结淘宝最丰富的强势类目,精选最优质的卖家和商品,达到最广泛的买家覆盖率     淘宝美容馆,我的美容管家。精选商品、高额佣金、疯狂畅销、打造买家自己的美容小馆。     打造第一居家达人馆,网罗更多创意极品和居家商品,为你共同打造属于你的浪漫满屋!    

T1nP2dXeJiXXaCwpjX.png T1nqWGXhdBXXbwqofS-300-250.jpg T18rGuXb40XXbwqofS-300-250.jpg T1nqWGXhdBXXbwqofS-300-250.jpg
网购从这里开始   

5.jpg     1.png 1.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值