sp_trace_setfilter(Transact-SQL)

적용 대상:SQL Server

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

중요

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

Transact-SQL 구문 규칙

구문

  
sp_trace_setfilter [ @traceid = ] trace_id   
          , [ @columnid = ] column_id  
          , [ @logical_operator = ] logical_operator  
          , [ @comparison_operator = ] comparison_operator  
          , [ @value = ] value  

인수

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

[ @columnid = ] column_id 필터가 적용되는 열의 ID입니다. column_idint이며 기본값은 없습니다. column_id NULL인 경우 SQL Server 지정된 추적에 대한 모든 필터를 지웁니다.

[ @logical_operator = ] logical_operator AND (0) 또는 OR (1) 연산자가 적용되는지 여부를 지정합니다. logical_operator 기본값이 없는 int입니다.

[ @comparison_operator = ] comparison_operator 비교할 형식을 지정합니다. comparison_operator 기본값이 없는 int입니다. 비교 연산자 및 나타내는 값이 표에 나와 있습니다.

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

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

비교 연산자가 LIKE 또는 NOT LIKE일 경우 논리 연산자는 "%" 또는 LIKE 연산에 적합한 다른 필터를 포함할 수 있습니다.

에 NULL을 지정하여 NULL 열 값으로 이벤트를 필터링할 수 있습니다. NULL에서는 0(= 같음) 및 1(<> 같지 않음) 연산자만 유효합니다. 이 경우 이러한 연산자는 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*필터 확장 저장 프로시저 대신 sp_trace_setfilter 사용하여 추적에서 필터를 생성, 적용, 제거 또는 조작합니다. 자세한 내용은 추적 필터링을 참조하세요.

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

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

사용 권한

사용자는 ALTER TRACE 권한이 있어야 합니다.

예제

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

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

관련 항목

sys.fn_trace_getfilterinfo(Transact-SQL)
sys.fn_trace_getinfo (Transact-SQL)
SQL 추적