코드 2-18은 이것과 동일한 동작을 하는 트리거를 생성하는 방법이다.
코드 2-18 자식 테이블의 길 잃은 레코드를 방지하는 트리거 생성
CREATE TRIGGER DelCascadeTrig
ON Orders
FOR DELETE
AS
DELETE Order_Details
FROM Order_Details, deleted
WHERE Order_Details.OrderNumber = deleted.OrderNumber;
앞에서 언급했듯이 DRI 접근법은 트리거보다 빠르게 수행되며 더 효율적이다.
BETTER WAY 5에서 설명했듯이 트리거는 자동으로 값을 계산하는 데도 사용할 수 있다. 예를 들어 코드 2-19는 SQL Server에서 Order_Details 테이블 값이 변할 때마다 트리거를 이용해 Orders 테이블의 OrderTotals 컬럼 값을 변경하는 예제이다.
Note ≣
코드 2-19는 SQL Server용 구문이다. 다른 DBMS용 코드는 https://github.com/gilbutITbook/006882를 참고하자.