在触发器中如何判断最后一次的插入、更新的内容? 我需要建立一个触发器,2个功能:1、把T1最后一次插入的内容写入T2表中2、把T1更改的内容在T2表中也作出更改,如T1表对表中某行或多行中的某个字段进行了更改,那T2 表中也要进行更改类似于视图。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 直接对t1表做触发器就行了.大致方法如下:CREATE TRIGGER trig1on authorsFOR INSERT, UPDATE, DELETEAS ......GO 不太明白..假设T1中只有一个字段"NAME" ,我写入一条记录后,如何把这条记录写入T2表?如何用INSERT,没有条件的话,会把T1 中所有的数据全写入T2 的,还有我更新T1表中某条记录时,T2 如何随着T1的更新也更新?? 不太明白..假设T1中只有一个字段"NAME" ,我写入一条记录后,如何把这条记录写入T2表?如何用INSERT,没有条件的话,会把T1 中所有的数据全写入T2 的,还有我更新T1表中某条记录时,T2 如何随着T1的更新也更新??----------------------------------------在触发器中,插入的记录会保存在inserted的系统表中,删除的记录会保存在deleted的系统表中你新插入的记录就在inserted表中. CREATE TRIGGER trT1toT2 on T1 FOR INSERT, UPDATEAS if not exists(select 1 from deleted)--insert begin insert T2 selelect * from inserted; end else --update begin update T2 set [NAME]=i.[NAME] from inserted i,deleted d where [NAME]=d.[NAME]; end 这样? 我按你这样写后,是可以触发了,但有的时候会出现重复的记录,T1 表是个多人操作的表,有时候可能会出现4-5个人同时往里面插入或更新记录我测试了一个下午,得到的结果是,T1表中一共插入了120条新记录,但T2 表中竟然出现了近300条记录,其中很多是1条记录重复了几次的.这个是什么原因?如何解决?谢谢 sqlserver2005,视图不自动更新??? isnumeric 请各位指点一下,如何改善数据的查询速度? 多表查询 关于数据库备份的问题 Sql 显示数据问题 sqlstate=37000是什么错误 关于“聚集索引”的困惑,请赐教 存储过程中是否能修改或创建视图 高手们:能否编程实现对sql server的sql语句进行扩充?????? 在线等一个简单的SQL语句 如何使用DDL触发器记录加密的存储过程?
on authors
FOR INSERT, UPDATE, DELETE
AS
......
GO
不太明白..假设T1中只有一个字段"NAME" ,我写入一条记录后,如何把这条记录写入T2表?如何用INSERT,没有条件的话,会把T1 中所有的数据全写入T2 的,还有我更新T1表中某条记录时,T2 如何随着T1的更新也更新??
在触发器中,插入的记录会保存在inserted的系统表中,删除的记录会保存在deleted的系统表中
你新插入的记录就在inserted表中.
on T1
FOR INSERT, UPDATE
AS
if not exists(select 1 from deleted)--insert
begin
insert T2 selelect * from inserted;
end
else --update
begin
update T2
set [NAME]=i.[NAME]
from inserted i,deleted d
where [NAME]=d.[NAME];
end 这样?
我按你这样写后,是可以触发了,但有的时候会出现重复的记录,T1 表是个多人操作的表,有时候可能会出现4-5个人同时往里面插入或更新记录
我测试了一个下午,得到的结果是,T1表中一共插入了120条新记录,但T2 表中竟然出现了近300条记录,其中很多是1条记录重复了几次的.这个是什么原因?如何解决?谢谢