如何创建一个触发器,将表中的原始数据和编辑数据复制到另一个表中?

时间:2016-02-08 09:04:32

标签: sql sql-server database triggers

我正在使用SQL Server,我想知道是否有办法在表上创建一个触发器,允许在更新之前复制其原始数据,并在另一个表中更新后复制其修改后的数据?

如果是,我怎么能区分两者?

谢谢:)

@SouravA

create trigger SomeBeforeUpdateTrigger
on YourTable
before update
as
insert into SecondTable (ID, Name)
select ID, Name
from deleted; 
go
insert into SecondTable (ID, NewName)
select ID, Name
from inserted;

1 个答案:

答案 0 :(得分:0)

如果我理解正确,是的,这是可能的。您基本上需要BEFORE UPDATE触发器。

create trigger SomeBeforeUpdateTrigger
on YourTable
before update
as
insert into BeforeUpdate (ID, Name)
select ID, Name
from deleted; 
go
insert into AfterUpdate (ID, Name)
select ID, Name
from inserted;    

第一个语句会将这些行插入到表BeforeUpdate中,这些行正在被更改。第二个将新行插入表AfterUpdate