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.

Icona di collegamento a un argomentoConvenzioni 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)

Altre risorse

Introduzione a Traccia SQL

Guida in linea e informazioni

Assistenza su SQL Server 2005