sp_trace_setfilter(Transact-SQL)

적용 대상:SQL Server

추적에 필터를 적용합니다. sp_trace_setfilter는 중지된 기존 추적에서만 실행될 수 있습니다(@상태)0. 이 저장 프로시저가 존재하지 않거나 @상태0없는 추적에서 실행되는 경우 SQL Server에서 오류를 반환합니다.

Important

이 기능은 이후 버전의 SQL Server에서 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 애플리케이션은 수정하세요. 대신 확장 이벤트를 사용합니다.

Transact-SQL 구문 표기 규칙

구문

sp_trace_setfilter
    [ @traceid = ] traceid
    , [ @columnid = ] columnid
    , [ @logical_operator = ] logical_operator
    , [ @comparison_operator = ] comparison_operator
    , [ @value = ] value
[ ; ]

인수

[ @traceid = ] traceid

필터가 설정된 추적의 ID입니다. @traceid 기본값이 없는 int입니다. 사용자는 이 @traceid 값을 사용하여 추적을 식별, 수정 및 제어합니다.

[ @columnid = ] columnid

필터가 적용되는 열의 ID입니다. @columnid 기본값이 없는 int입니다. @columnid 경우 SQL Server는 NULL지정된 추적에 대한 모든 필터를 지웁니다.

[ @logical_operator = ] logical_operator

AND() 또는 OR1(0) 연산자를 적용할지 여부를 지정합니다. @logical_operator 기본값이 없는 int입니다.

[ @comparison_operator = ] comparison_operator

비교 유형을 지정합니다. @comparison_operator 기본값이 없는 int입니다. 테이블에는 비교 연산자와 해당 대표 값이 포함됩니다.

비교 연산자
0 = (같음)
1 <> (같지 않음)
2 > (보다 큼)
3 < (보다 작음)
4 >= (보다 크거나 같음)
5 <= (작거나 같음)
6 LIKE
7 NOT LIKE

[ @value = ] value

필터링할 값을 지정합니다. @value 데이터 형식은 필터링할 열의 데이터 형식과 일치해야 합니다. 예를 들어 필터가 int 데이터 형식인 개체 ID 열에 설정된 경우 @value int여야 합니다. @value nvarchar 또는 varbinary인 경우 최대 길이는 8000일 수 있습니다.

비교 연산자이거나 논리 연 LIKE 산자가 작업에 적합한 필터를 포함하거나 기타 필터를 포함 %LIKENOT LIKE있습니다.

@value 열 값이 있는 NULL 이벤트를 필터링하도록 지정할 NULL수 있습니다. (=Equal) 및 1 (<>Not Equal) 연산자만 0 유효합니다NULL. 이 경우 이러한 연산자는 Transact-SQL IS NULL 및 연산자와 IS NOT NULL 동일합니다.

열 값 sp_trace_setfilter 범위 간에 필터를 적용하려면 두 번 실행해야 합니다. 한 번은 크거나 같음(>=) 비교 연산자를 사용하고 다른 한 번은 작거나 같음(<=) 연산자를 사용하여 실행해야 합니다.

데이터 열 데이터 형식에 대한 자세한 내용은 SQL Server 이벤트 클래스 참조를 참조하세요.

반환 코드 값

다음 표에서는 저장 프로시저가 완료된 후 사용자가 얻을 수 있는 코드 값에 대해 설명합니다.

반환 코드 설명
0 오류가 없습니다.
1 알 수 없는 오류입니다.
2 추적이 현재 실행 중입니다. 현재 추적을 변경하면 오류가 발생합니다.
4 지정한 열이 잘못되었습니다.
5 지정한 열은 필터링할 수 없습니다. 이 값은 .에서 sp_trace_setfilter만 반환됩니다.
6 지정한 비교 연산자가 잘못되었습니다.
7 지정한 논리 연산자가 잘못되었습니다.
9 지정한 추적 핸들이 잘못되었습니다.
13 메모리가 부족합니다. 메모리가 부족하여 지정된 작업을 수행할 수 없을 때 반환됩니다.
16 이 추적에는 함수가 유효하지 않습니다.

설명

sp_trace_setfilter 는 이전 버전의 SQL Server에서 사용할 수 있는 확장 저장 프로시저에서 이전에 실행한 많은 작업을 수행하는 SQL Server 저장 프로시저입니다. 확장 저장 프로시저 대신 추적에 대한 필터를 생성, 적용, 제거 또는 조작하는 데 xp_trace_set*filter 사용합니다sp_trace_setfilter. 자세한 내용은 추적 필터링을 참조하세요.

한 번의 실행 sp_trace_setfilter으로 특정 열에 대한 모든 필터를 함께 사용하도록 설정해야 합니다. 예를 들어 사용자가 애플리케이션 이름 열에 두 개의 필터를 적용하고 사용자 이름 열에 필터 하나를 적용하려는 경우 사용자는 애플리케이션 이름에 대한 필터를 순서대로 지정해야 합니다. SQL Server는 사용자가 한 저장 프로시저 호출에서 애플리케이션 이름에 필터를 지정한 다음 사용자 이름에 대한 필터, 애플리케이션 이름에 대한 다른 필터를 지정하려고 하면 오류를 반환합니다.

모든 SQL 추적 저장 프로시저(sp_trace_*)의 매개 변수는 엄격하게 입력됩니다. 인수 설명에 지정된 대로 올바른 입력 매개 변수 데이터 형식으로 이러한 매개 변수를 호출하지 않으면 저장 프로시저에서 오류를 반환합니다.

사용 권한

ALTER TRACE 권한이 필요합니다.

예제

다음 예제에서는 추적 1에 세 개의 필터를 설정합니다. N'SQLT%'N'MS%' 필터는 한 열(AppName, 값 10)에서 "LIKE" 비교 연산자를 사용하여 실행됩니다. 필터 N'joe' 는 "EQUAL" 비교 연산자를 사용하여 다른 열(UserName11)에서 작동합니다.

EXEC sp_trace_setfilter 1, 10, 0, 6, N'SQLT%';
EXEC sp_trace_setfilter 1, 10, 0, 6, N'MS%';
EXEC sp_trace_setfilter 1, 11, 0, 0, N'joe';