다음을 통해 공유


이벤트 알림 및 트리거 이해

다음 표에서는 트리거와 이벤트 알림을 비교 및 대조합니다.

TRIGGERS EVENT NOTIFICATIONS

DML 트리거는 DML(데이터 조작 언어) 이벤트에 응답하고 DDL 트리거는 DDL(데이터 정의 언어) 이벤트에 응답합니다.

이벤트 알림은 DDL 이벤트와 SQL Trace 이벤트의 하위 집합에 응답합니다.

트리거는 Transact-SQL 또는 CLR(공용 언어 런타임) 관리 코드를 실행할 수 있습니다.

이벤트 알림은 코드를 실행하지 않는 대신 Service Broker 서비스에 xml 메시지를 보냅니다.

트리거는 트리거를 시작하는 트랜잭션 범위 내에서 동기적으로 처리됩니다.

이벤트 알림은 비동기적으로 처리될 수 있으며 해당 이벤트 알림을 시작하는 트랜잭션 범위 내에서 실행되지 않습니다.

트리거의 소비자는 트리거를 실행하는 이벤트에 밀접하게 결합됩니다.

이벤트 알림의 소비자는 이벤트 알림을 시작하는 이벤트와 분리됩니다.

트리거는 로컬 서버에서 처리해야 합니다.

이벤트 알림은 원격 서버에서 처리할 수 있습니다.

트리거는 롤백할 수 있습니다.

이벤트 알림은 롤백할 수 없습니다.

DML 트리거 이름은 스키마 범위입니다. DDL 트리거 이름은 데이터베이스 범위이거나 서버 범위입니다.

이벤트 알림 이름은 서버 또는 데이터베이스 범위입니다. QUEUE_ACTIVATION 이벤트에 대한 이벤트 알림의 범위는 특정 큐로 한정됩니다.

DML 트리거는 트리거가 적용되는 테이블과 동일한 소유자에 의해 소유됩니다.

큐에 대한 이벤트 알림의 소유자는 해당 이벤트 알림이 적용되는 개체의 소유자와 다를 수 있습니다.

트리거는 EXECUTE AS 절을 지원합니다.

이벤트 알림은 EXECUTE AS 절을 지원하지 않습니다.

DDL 트리거 이벤트 정보는 xml 데이터 형식을 반환하는 EVENTDATA 함수를 사용하여 캡처할 수 있습니다.

이벤트 알림은 Service Broker 서비스에 xml 이벤트 정보를 보냅니다. 해당 정보는 EVENTDATA 함수와 같은 스키마 형식으로 지정됩니다.

트리거의 메타데이터는 sys.triggerssys.server_triggers 카탈로그 뷰에 포함됩니다.

이벤트 알림의 메타데이터는 sys.event_notificationssys.server_event_notifications 카탈로그 뷰에 포함됩니다.

참고 항목

개념

이벤트 알림 이해

도움말 및 정보

SQL Server 2005 지원 받기