sp_trace_setfilter (Transact-SQL)
Applica un filtro a una traccia. È possibile eseguire sp_trace_setfilter solo su tracce esistenti interrotte, ovvero il cui valore status è 0. SQL Server restituisce un errore se questa stored procedure viene eseguita su una traccia inesistente oppure il cui valore status non è 0.
Convenzioni della sintassi Transact-SQL
Sintassi
sp_trace_setfilter [ @traceid = ] trace_id
, [ @columnid = ] column_id
, [ @logical_operator = ] logical_operator
, [ @comparison_operator = ] comparison_operator
, [ @value = ] value
Argomenti
- [ @traceid= ] trace_id
ID della traccia a cui applicare il filtro. trace_id è di tipo int e non prevede alcun valore predefinito. Tramite il valore trace_id l'utente può identificare, modificare e controllare la traccia.
- [ @columnid= ] column_id
ID della colonna a cui applicare il filtro. column_id è di tipo int e non prevede alcun valore predefinito. Se column_id è NULL, tramite SQL Server vengono cancellati tutti i filtri per la traccia specifica.
- [ @logical_operator = ] logical_operator
Specifica se applicare l'operatore AND (0) o OR (1). logical_operator è di tipo int e non prevede alcun valore predefinito.
[ @comparison_operator= ] comparison_operator
Specifica il tipo di confronto da eseguire. comparison_operator è di tipo int e non prevede alcun valore predefinito. Nella tabella seguente vengono descritti gli operatori di confronto e i valori che li rappresentano.Valore Operatori di confronto 0
= (uguaglianza)
1
<> (disuguaglianza)
2
> (maggiore di)
3
< (minore di)
4
>= (maggiore o uguale a)
5
<= (minore o uguale a)
6
LIKE
7
NOT LIKE
[ @value= ] value
Specifica il valore in base a cui applicare il filtro. Il tipo di dati di value deve corrispondere a quello della colonna da filtrare. Se, ad esempio, il filtro è impostato su una colonna di ID di oggetto di tipo int, value deve essere di tipo int. Se value è di tipo nvarchar o varbinary, la lunghezza massima del parametro deve essere pari a 8000.Quando l'operatore di confronto è LIKE o NOT LIKE, l'operatore logico può includere "%" o un filtro appropriato per l'operazione LIKE.
In SQL Server 2005, è possibile assegnare NULL a value per escludere gli eventi con valori di colonna uguali a NULL. Con NULL sono validi solo gli operatori 0 (= uguaglianza) e 1 (<> diseguaglianza). In questo caso, tali operatori sono equivalenti agli operatori Transact-SQL IS NULL e IS NOT NULL.
Per applicare il filtro a un intervallo di valori di colonna, è necessario eseguire sp_trace_setfilter due volte, una con l'operatore di confronto maggiore o uguale a ('>=') e una seconda volta con l'operatore minore o uguale a ('<=').
Per ulteriori informazioni sui tipi di dati validi per le colonne di dati, vedere Guida di riferimento alla classe di evento SQL Server.
Osservazioni
sp_trace_setfilter è una stored procedure di SQL Server 2005 che esegue molte delle azioni eseguite dalle stored procedure estese disponibili nelle versioni precedenti di SQL Server. Utilizzare sp_trace_setfilter anziché le stored procedure estese xp_trace_set*filter per creare, applicare, rimuovere o manipolare i filtri applicati alle tracce. Per ulteriori informazioni, vedere Filtraggio di una traccia.
Tutti i filtri di una colonna specifica devono essere attivati contemporaneamente per la stessa esecuzione di sp_trace_setfilter. Se, ad esempio, un utente desidera applicare due filtri alla colonna dei nomi di applicazione e un filtro alla colonna dei nomi utente, deve specificare i filtri per il nome dell'applicazione in sequenza. SQL Server restituisce un errore se l'utente tenta di specificare un filtro per il nome dell'applicazione nella chiamata a un stored procedure, seguito da un filtro per il nome utente e quindi da un altro filtro per il nome dell'applicazione.
I parametri di tutte le stored procedure SQL Trace (sp_trace_xx) devono essere fortemente tipizzati. Se questi parametri non vengono chiamati con i tipi di dati corretti per i parametri di input, come indicato nella descrizione dell'argomento, la stored procedure restituisce un errore.
Autorizzazioni
L'utente deve disporre dell'autorizzazione ALTER TRACE.
Valori restituiti
Nella tabella seguente vengono descritti i possibili valori di codice visualizzati al completamento della stored procedure.
Codice restituito | Descrizione |
---|---|
0 |
Nessun errore. |
1 |
Errore sconosciuto. |
2 |
La traccia è in esecuzione. Se si modifica la traccia mentre è in esecuzione, viene generato un errore. |
4 |
La colonna specificata non è valida. |
5 |
La colonna specificata non supporta l'applicazione di filtri. Questo valore viene restituito solo quando si esegue sp_trace_setfilter. |
6 |
L'operatore di confronto specificato non è valido. |
7 |
L'operatore logico specificato non è valido. |
9 |
L'handle di traccia specificato non è valido. |
13 |
Memoria esaurita. Restituito quando la quantità di memoria disponibile non è sufficiente per eseguire l'azione specificata. |
16 |
Funzione non valida per la traccia. |
Esempi
Nell'esempio seguente vengono impostati tre filtri in Trace 1
. I filtri N'SQLT%'
e N'MS%'
vengono applicati alla colonna AppName
, valore 10
, tramite l'operatore di confronto "LIKE
". Il filtro N'joe'
viene applicato a una colonna diversa, ovvero UserName
, valore 11
, tramite l'operatore di confronto "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'
Vedere anche
Riferimento
fn_trace_getfilterinfo (Transact-SQL)
fn_trace_getinfo (Transact-SQL)