触发器不会更改已存在的数据

时间:2013-02-19 06:27:54

标签: sql sql-server sql-server-2005 triggers datatrigger

我有表刚才说Table1,它触发了Table2的插入,因此Table1中的数据将被插入到表2中。
问题是每次Table1中的数据发生变化时,Table2中的数据也会从之前的触发器中发生变化。我希望以前的触发器中已经存在的数据仍在那里而不会改变。

任何解决方案?

这是我的代码:

create trigger trig_change on Table1
for insert
begin
    insert into Table2
    select * from table1
end

1 个答案:

答案 0 :(得分:2)

我确定这段代码必须在tab2中插入重复值。每当插入事件触发tab1整个数据以及新插入的行从tab1插入tab2时,以前在tab2中插入的数据将保持不变(不会被更改)在tab1中更改)。因此,您需要在代码中进行一些更改,请使用defult表(插入)。 这是更改的代码,希望这可以帮助您:

 create trigger trig_change on Table1
for insert
begin
    insert into Table2
    select a.* from table1 a,inserted i
    where a.col1=i.col1

end