적용 대상:SQL Server
추적에 필터를 적용합니다.
sp_trace_setfilter는 중지된 기존 추적(@status0)에서만 실행할 수 있습니다. 이 저장 프로시저가 존재하지 않거나 @status0오류를 반환합니다.
Important
SQL Server의 이후 버전에서는 이 기능이 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 애플리케이션은 수정하세요. 대신 확장 이벤트를 사용합니다.
구문
sp_trace_setfilter
[ @traceid = ] traceid
, [ @columnid = ] columnid
, [ @logical_operator = ] logical_operator
, [ @comparison_operator = ] comparison_operator
, [ @value = ] value
[ ; ]
인수
Important
확장 저장 프로시저에 대한 인수는 구문 섹션에 설명된 대로 특정 순서로 입력해야 합니다. 매개 변수를 순서대로 입력하면 오류 메시지가 발생합니다.
[ @traceid = ] traceid
필터가 설정된 추적의 ID입니다. @traceid 기본값이 없는 int입니다. 사용자는 이 @traceid 값을 사용하여 추적을 식별, 수정 및 제어합니다.
[ @columnid = ] columnid
필터가 적용되는 열의 ID입니다.
@columnid 기본값이 없는 int입니다. @columnid 경우 SQL Server는 NULL지정된 추적에 대한 모든 필터를 지웁니다.
[ @logical_operator = ] logical_operator
AND() 또는 OR0(1) 연산자를 적용할지 여부를 지정합니다.
@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 산자가 작업에 적합한 필터를 포함하거나 기타 필터를 포함 NOT LIKE 할 % 수 LIKE있습니다.
@valueNULL수 있습니다. (0Equal) 및 = (1Not Equal) 연산자만 <> 유효합니다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 저장 프로시저입니다. 확장 저장 프로시저 대신 추적에 대한 필터를 생성, 적용, 제거 또는 조작하는 데 sp_trace_setfilter 사용합니다xp_trace_set*filter. 자세한 내용은 추적 필터링을 참조하세요.
한 번의 실행 sp_trace_setfilter으로 특정 열에 대한 모든 필터를 함께 사용하도록 설정해야 합니다. 예를 들어 사용자가 애플리케이션 이름 열에 두 개의 필터를 적용하고 사용자 이름 열에 필터 하나를 적용하려는 경우 사용자는 애플리케이션 이름에 대한 필터를 순서대로 지정해야 합니다. SQL Server는 사용자가 한 저장 프로시저 호출에서 애플리케이션 이름에 필터를 지정한 다음 사용자 이름에 대한 필터, 애플리케이션 이름에 대한 다른 필터를 지정하려고 하면 오류를 반환합니다.
모든 SQL 추적 저장 프로시저(sp_trace_*)의 매개 변수는 엄격하게 입력됩니다. 인수 설명에 지정된 대로 올바른 입력 매개 변수 데이터 형식으로 이러한 매개 변수를 호출하지 않으면 저장 프로시저에서 오류를 반환합니다.
사용 권한
ALTER TRACE 권한이 필요합니다.
예제
다음 예제에서는 추적 1에 세 개의 필터를 설정합니다.
N'SQLT%' 및 N'MS%' 필터는 한 열(AppName, 값 10)에서 "LIKE" 비교 연산자를 사용하여 실행됩니다. 필터 N'joe' 는 "UserName" 비교 연산자를 사용하여 다른 열(11값EQUAL)에서 작동합니다.
EXECUTE sp_trace_setfilter 1, 10, 0, 6, N'SQLT%';
EXECUTE sp_trace_setfilter 1, 10, 0, 6, N'MS%';
EXECUTE sp_trace_setfilter 1, 11, 0, 0, N'joe';