【问题标题】:trigger not change data that already exist触发器不改变已经存在的数据
【发布时间】:2013-02-03 18:16:51
【问题描述】:

我有表,刚才说的是Table1,它触发了Table2的插入,所以Table1的数据会插入Table2。
问题是每次Table1中的数据发生变化,之前触发的Table2中的数据也发生了变化。
我希望之前触发器中已经存在的数据仍然存在并且不会更改。

有什么解决办法吗?

这是我的代码:

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

【问题讨论】:

  • 请贴出触发器的代码
  • @Meherzad ,我的代码只是简单的插入触发器,我想知道是否有某种编码方式来解决我的情况
  • 从它的声音看来,您的触发器中的 where 子句似乎很糟糕。在这里发布您的触发代码,无论多么简单。
  • @Raj ,请再看我的帖子
  • WHERE 子句在哪里?对于 Table1 中的每次插入,您将再次将所有行插入 Table2。

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


【解决方案1】:

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

 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多