코드 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를 참고하자.

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.