이것은 일반적인 질문이지만이 질문에 대한 동기는 SQL Server를 사용하는 동안 직면 한 문제였습니다.
행이 삽입되지 않은 경우 부작용으로 오류가 발생하는 일부 논리가 포함 된 테이블의 Insert 이벤트에이 트리거를 연결했습니다. 추가 조사 결과, 행을 삽입하지 않아도 트리거가 실행되고 있음을 발견했습니다.
DML 트리거 에 대한 Microsoft 문서에서 사용되는 언어는 이 동작과 모순되는 것 같습니다.
DML 트리거는 트리거에 정의 된 테이블 또는 뷰에 영향을주는 DML 이벤트가 발생할 때 자동으로 적용되는 특수한 유형의 저장 프로 시저입니다.
이것이 DBMS의 기본 동작입니까? 영향을받는 행이 없을 때 트리거를 발생시키는 특별한 이유가 있습니까?