나는 두 개의 테이블 person
과 customer
을 가지고 있습니다. person
에서 삭제할 때 나는 customer
에서 삭제할 :왜 'FOR'키워드 근처에 '잘못된 구문이 생깁니 까?'
CREATE TRIGGER DELCUS
ON Person
AFTER DELETE
FOR EACH ROW
begin
DELETE FROM customer
WHERE customer.PersonID_Fk=Person.PersonId;
end
오류 내가 얻을 수있다 :
Msg 156, Level 15, State 1, Procedure DELCUS, Line 5
Incorrect syntax near the keyword 'FOR'.
가 각 행에 대해 읽을 수없는 이유는 무엇입니까?
CREATE TRIGGER DELCUS
ON Person
AFTER DELETE AS
begin
DELETE c
FROM customer
WHERE EXISTS (select 1 from deleted where customer.PersonID_Fk=deleted.PersonId);
end
당신이 MySQL을 사용하는 경우, 그것은이의 : SQL Server를 사용하는 경우
사용하고있는 데이터베이스? – Atonewell
sql server 2008 – Nickool
SQL Server에'FOR EACH ROW '가 없습니다 - 트리거는 ** 문 ** 당 ** 번 (** 행 당 한 번 ** NOT **) 호출되며 ** 여러 행으로 호출 될 수 있습니다 * * 삽입, 갱신 또는 삭제되는 행을 보유하고있는'Inserted' 및/또는'Deleted' 의사 테이블에서. 트리거를 한 번에 여러 행을 처리 할 수 있어야합니다. –