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 № 1Wymień: 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)