【发布时间】:2017-12-21 11:20:24
【问题描述】:
我有三个表OldTable、NewTable 和MainTable。我创建了一个触发器,将旧值放入 OldTable 并将新值放入 Newtable。
我只需要获取更改的数据。
主表
EID Ename EAddress Emobile
1 mittal pardi 9876543212
2 vaibhav Porbandar 7456543212
旧表
ID EID Ename EAddress Emobile CurrentDate
1 2 vaibhav pardi 7456543212 2017-12-21 11:00:23.437
新表
ID EID Ename EAddress Emobile CurrentDate
1 2 vaibhav Porbandar 7456543212 2017-12-21 11:00:23.437
我需要什么:
EID OldValue NewValue
2 pardi Porbandar
可以有不止一个新旧值!
我的触发代码:
ALTER TRIGGER [dbo].[trg_TEST_Upd]
ON [dbo].[MAIN_TABLE]
FOR UPDATE
AS
begin
SELECT * FROM INSERTED -- show data in INSERTED logical table
SELECT * FROM DELETED -- show data in DELETED logical table
insert into New_TABLE(EID,Ename,EAddress,Emobile,CurrentDate)
select EID,Ename,EAddress,Emobile,getdate() from INSERTED
insert into OLD_TABLE(EID,Ename,EAddress,Emobile,CurrentDate)
select EID,Ename,EAddress,Emobile,getdate() from DELETED
End
【问题讨论】:
-
mysql 还是 Sqlserver?请不要发送垃圾标签
-
通过将最早的 old_table 与当前的 main_table 匹配肯定可以找到净变化吗?在这种情况下,new_table 是无关紧要的。
标签: sql-server sql-server-2008 stored-procedures triggers