В 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
, потому что триггеры вызывают накладные расходы.