/ / Jak utworzyć wyzwalacz dla każdego wiersza w SQL Server - sql-server, tsql, triggers, sql-server-2014

Jak utworzyć wyzwalacz dla każdego wiersza w programie SQL Server - serwer sql, tsql, wyzwalacze, serwer sql-2014

create table t1(col int);
create table t2(col int);


CREATE TRIGGER tr
ON t1
AFTER INSERT
as
begin
INSERT INTO t2(col) values(1)
end;

-- tables and trigger created

INSERT INTO t1(col) values(1), (2)

Kiedy uruchamiam to zapytanie wstawiania, w tabeli t2 wstaw zdarzenie dzieje się tylko raz.

Potrzebne FOR EACH ROW instrukcja w wyzwalaczu, ale jak zrobić to w SQL Server? Nie znaleziono w dokumentacji, a po googlowaniu nie znalazłem też dobrego rozwiązania.

Odpowiedzi:

1 dla odpowiedzi № 1

Wymień: INSERT INTO t2(col) values(1)

w:

INSERT INTO t2(col) SELECT col FROM inserted

Ponieważ w inserted tabela znajdziesz wszystkie wiersze wstawione do tabeli połączone przy twoim wyzwalaczu (t1)