需要触发器才能在某些条件下将新行复制到其他表

我有2张桌子(A,B)。

  • 表A具有以下字段(1,2,3,4,5,6,7,... 30)。
  • 表B具有这些字段(1,7)。
  • 主表是A-销售系统将数据插入表A。

我需要触发器来做到这一点:

复制插入到表A和字段(3)> 1和字段(7)的新行!='' 到表B。

注意:表A中有大量数据插入(在高峰时间),因为这些代码不会影响性能。

zhi_huiyudi 回答:需要触发器才能在某些条件下将新行复制到其他表

在SQL Server中,我将其表述为;

create trigger trig_tableA_insert on tableA after insert
as begin    
    insert into tableB (Field1,Field2,Field3,Field6,Field7)
        select i.Field1,i.Field2,i.Field3,i.Field6,i.Field7 
        from inserted i
        where i.field3 > 1 and i.field7 <> '';
end;

这对于一次插入多行的语句是安全的。

如果您有很多插入内容,我想知道这是否是最佳方法。大概您需要tableB中的数据,因为触发器会产生开销。

,

这是您的trigger。在condition下添加不会将数据插入您的tableB

create trigger [t_TableA]
on tableA
after  [insert]
as
begin

    if ((select 1 from inserted where field3 > 1 and coalesce(field7,'') != '') != 1)
        begin
            return;
        end

    insert into tableB (Field1,Field7)
    select Field1,Field7 from inserted
end
本文链接:https://www.f2er.com/3168730.html

大家都在问