создать триггер вставки - PullRequest
1 голос
/ 05 апреля 2011

Как я могу написать триггер в SQL Server, который поможет мне вставить значения в таблицу, когда некоторые данные будут вставлены в другую таблицу?И я также хочу использовать вставленные данные во вторую таблицу для вставки первой таблицы.

Существует таблица A и таблица B,

при вставке строки в таблицу B (TBLP1ISLEM)

Я хочу вставить несколько ячеек из этой вставки

в таблицу A (TBLP1DOVIZKURU).

Таблица B, вставлена ​​

Справка по триггеру => ТаблицаА, вставлено

Спасибо.

код

CREATE TRIGGER [dbo].[Deneme] 
   ON  [dbo].[TBLP1ISLEM] 
   FOR INSERT
AS 
IF(SELECT ID FROM inserted)>0
BEGIN
    SET NOCOUNT ON;
    INSERT INTO TBLP1DOVIZKURU(ISLEM_ID,DOVIZBIRIM,KUR) 
    SELECT ID, PARABIRIMI, KUR FROM inserted


END

Ответы [ 3 ]

1 голос
/ 05 апреля 2011
CREATE TRIGGER your_trigger_name
ON  [TableB]
FOR INSERT
AS 
BEGIN

INSERT INTO TableA (tA_field1,tA_field2,tA_other_fields)  SELECT tB_field1,tB_field2,tB_other_fields FROM Inserted

END
1 голос
/ 06 сентября 2012
SYSTEM@valeh> create table emp_list (id number, name varchar2(20));
 SYSTEM@valeh> insert into emp_list values (1,'Valeh');
 SYSTEM@valeh> create table emp_age (age_id number, emp_id number, emp_age number);
 SYSTEM@valeh> create view emp_view as select * from emp_list el,emp_age age where el.id=age.emp_id;


create or replace trigger view_trigger
 instead of insert on emp_view
 referencing new as new old as old
 declare
 v_id VARCHAR(20);
 begin
 if :new.id is not null then
 insert into emp_list (id,name) values (:new.id,:new.name);
 insert into emp_age (age_id,emp_id,emp_age) values (:new.age_id,:new.emp_id,:new.emp_age)
 returning :new.id into v_id;
 else
 raise_application_error (-20999, 'Cannot create employee without name');
 end if;
 end;


SYSTEM@valeh> insert into emp_view values (2,'taleh',2,2,20);

SYSTEM@valeh> select * from emp_view;
1 голос
/ 05 апреля 2011

Добавить триггер в таблице B для вставки. Это позволит вам захватывать вставленные данные и делать с ними все, что вы захотите. Вы можете использовать вставленные данные, вы можете запросить другую таблицу ... и т.д ...

CREATE TRIGGER trigger_Insert_TableB
ON TableB
FOR INSERT
AS
Begin
    Select * FROM Inserted //This will give you the inserted data
End
...