다음을 통해 공유


SQL Server 이벤트 공급자에 대한 데이터 수집 및 필터링

Microsoft SQL Server 이벤트 공급자를 정의할 때는 이벤트 데이터를 수집하는 쿼리를 정의해야 합니다. 필요에 따라 데이터를 수집하는 원본 테이블에서 사후 처리를 수행하는 쿼리를 정의할 수 있습니다.

데이터 수집

데이터 수집을 위해 정의하는 Transact-SQL 쿼리는 대상 이벤트 클래스의 필드와 정확히 일치하는 데이터를 반환하는 어떠한 Transact-SQL 쿼리도 될 수 있습니다. 예를 들어 2개의 필드 StockSymbolStockPrice가 있는 이벤트 클래스를 정의한 경우 이벤트를 수집하는 쿼리는 StockSymbolStockPrice 필드의 이름 및 데이터 형식과 일치하는 2개의 데이터 열만 반환하면 됩니다. 이러한 쿼리의 예로 다음을 들 수 있습니다.

SELECT StockSymbol, StockPrice
FROM StockDB.dbo.StockTable;

이벤트 수집 쿼리에 대한 저장 프로시저를 실행할 수 있습니다.

데이터 필터링

SELECT 문이 많은 양의 데이터를 반환할 수 있으며 일부 데이터가 유효한 이벤트 데이터가 아닌 경우 쿼리를 필터링할 수 있습니다. 예를 들어 구독자가 해당 구독을 만든 주식만 포함되어 있는 주식 데이터를 반환하는 쿼리를 작성할 수 있습니다.

SELECT StockSymbol, StockPrice
FROM StockDB.dbo.StockTable
WHERE StockSymbol IN 
(SELECT DISTINCT StockSymbol FROM dbo.StockSubscriptions);

이 쿼리는 알림을 생성할 수 있는 주식 데이터만 반환합니다.

사후 처리

SQL Server 이벤트 공급자는 사용자가 이벤트 생성 후에 데이터를 정리하거나 변경할 수 있도록 사후 처리 쿼리를 지원합니다. 예를 들어 이벤트를 생성하기 전에 값이 0인 열이 있는데 이벤트 생성 후에는 이 값을 1로 변경하고 싶을 수 있습니다. 테이블을 업데이트하기 위해 다음과 같은 쿼리를 작성할 수 있습니다.

UPDATE StockDB.dbo.StockTable
SET EventUsage = 1
WHERE EventUsage = 0;

사후 처리 쿼리는 이벤트 수집 쿼리와 동일한 트랜잭션에서 실행됩니다.

사후 처리 쿼리에 대한 저장 프로시저를 실행할 수 있습니다.

참고 항목

개념

SQL Server 이벤트 공급자 정의

관련 자료

이벤트 공급자 정의
표준 이벤트 공급자
SELECT(Transact-SQL)

도움말 및 정보

SQL Server 2005 지원 받기