sp_trace_setfilter (Transact-SQL)sp_trace_setfilter (Transact-SQL)

SI APPLICA A: sìSQL Server noDatabase SQL di Azure noAzure SQL Data Warehouse noParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Applica un filtro a una traccia.Applies a filter to a trace. sp_trace_setfilter può essere eseguita solo su tracce esistenti arrestate (stato viene 0).sp_trace_setfilter may be executed only on existing traces that are stopped (status is 0). SQL ServerSQL Server Restituisce un errore se questa stored procedure viene eseguita su una traccia che non esiste o il cui lo stato non è 0.returns an error if this stored procedure is executed on a trace that does not exist or whose status is not 0.

Importante

Questa funzionalità è in manutenzione e potrebbe essere rimossa in una delle prossime versioni di Microsoft SQL Server.This feature is in maintenance mode and may be removed in a future version of Microsoft SQL Server. Evitare di usare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata.Avoid using this feature in new development work, and plan to modify applications that currently use this feature. In alternativa, usare Eventi estesi.Use Extended Events instead.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintassiSyntax

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

ArgomentiArguments

[ @traceid = ] trace_id È l'ID della traccia a cui il filtro è impostato.[ @traceid = ] trace_id Is the ID of the trace to which the filter is set. trace_id viene int, non prevede alcun valore predefinito.trace_id is int, with no default. L'utente può trace_id valore da identificare, modificare e controllare la traccia.The user employs this trace_id value to identify, modify, and control the trace.

[ @columnid = ] column_id È l'ID della colonna in cui viene applicato il filtro.[ @columnid = ] column_id Is the ID of the column on which the filter is applied. column_id viene int, non prevede alcun valore predefinito.column_id is int, with no default. Se column_id è NULL, SQL ServerSQL Server Cancella tutti i filtri per la traccia specificata.If column_id is NULL, SQL ServerSQL Server clears all filters for the specified trace.

[ @logical_operator = ] logical_operator Specifica se l'operatore AND (0) o OR (1) viene applicato l'operatore.[ @logical_operator = ] logical_operator Specifies whether the AND (0) or OR (1) operator is applied. logical_operator viene int, non prevede alcun valore predefinito.logical_operator is int, with no default.

[ @comparison_operator = ] comparison_operator Specifica il tipo di confronto da eseguire.[ @comparison_operator = ] comparison_operator Specifies the type of comparison to be made. operatore_confronto viene int, non prevede alcun valore predefinito.comparison_operator is int, with no default. Nella tabella seguente vengono descritti gli operatori di confronto e i valori che li rappresentano.The table contains the comparison operators and their representative values.

ValueValue Operatore di confrontoComparison operator
00 = (uguaglianza)= (Equal)
11 <> (Non uguale)<> (Not Equal)
22 > (Maggiore di)> (Greater Than)
33 < (minore di)< (Less Than)
44 > = (maggiore o uguale)>= (Greater Than Or Equal)
55 < = (minore o uguale a)<= (Less Than Or Equal)
66 LIKELIKE
77 Non simile aNOT LIKE

[ @value = ] value Specifica il valore su cui applicare il filtro.[ @value = ] value Specifies the value on which to filter. Il tipo di dati valore deve corrispondere al tipo di dati della colonna da filtrare.The data type of value must match the data type of the column to be filtered. Ad esempio, se il filtro è impostato su una colonna di ID di oggetto che è un' int tipo di dati valore deve essere int. Se valore viene nvarchar oppure varbinary, può avere una lunghezza massima di 8000.For example, if the filter is set on an Object ID column that is an int data type, value must be int. If value is nvarchar or varbinary, it can have a maximum length of 8000.

Quando l'operatore di confronto è LIKE o NOT LIKE, l'operatore logico può includere "%" o un filtro appropriato per l'operazione LIKE.When the comparison operator is LIKE or NOT LIKE, the logical operator can include "%" or other filter appropriate for the LIKE operation.

È possibile specificare NULL per valore per filtrare gli eventi con valori di colonna NULL.You can specify NULL for value to filter out events with NULL column values. Solo 0 (= uguaglianza) e 1 (<> non uguale) gli operatori sono validi con valori NULL.Only 0 (= Equal) and 1 (<> Not Equal) operators are valid with NULL. In questo caso, tali operatori sono equivalenti agli operatori Transact-SQLTransact-SQL IS NULL e IS NOT NULL.In this case, these operators are equivalent to the Transact-SQLTransact-SQL IS NULL and IS NOT NULL operators.

Per applicare il filtro tra un intervallo di valori di colonna, sp_trace_setfilter deve essere eseguito due volte, una volta con una maggiore-a-or-equals ('> ='), operatore di confronto e una seconda volta con un minore di-a-or-equals ('< =') operatore .To apply the filter between a range of column values, sp_trace_setfilter must be executed twice -- once with a greater-than-or-equals ('>=') comparison operator, and another time with a less-than-or-equals ('<=') operator.

Per altre informazioni sui tipi di dati colonna di dati, vedere la SQL Server Event Class Reference.For more information about data column data types, see the SQL Server Event Class Reference.

Valori restituitiReturn Code Values

Nella tabella seguente vengono descritti i possibili valori di codice visualizzati al completamento della stored procedure.The following table describes the code values that users may get following completion of the stored procedure.

Codice restituitoReturn code DescrizioneDescription
00 Nessun errore.No error.
11 Errore sconosciuto.Unknown error.
22 La traccia è in esecuzione.The trace is currently running. Se si modifica la traccia mentre è in esecuzione, viene generato un errore.Changing the trace at this time results in an error.
44 La colonna specificata non è valida.The specified Column is not valid.
55 La colonna specificata non supporta l'applicazione di filtri.The specified Column is not allowed for filtering. Questo valore viene restituito solo sp_trace_setfilter.This value is returned only from sp_trace_setfilter.
66 L'operatore di confronto specificato non è valido.The specified Comparison Operator is not valid.
77 L'operatore logico specificato non è valido.The specified Logical Operator is not valid.
99 L'handle di traccia specificato non è valido.The specified Trace Handle is not valid.
1313 Memoria esaurita.Out of memory. Restituito quando la quantità di memoria disponibile non è sufficiente per eseguire l'azione specificata.Returned when there is not enough memory to perform the specified action.
1616 Funzione non valida per la traccia.The function is not valid for this trace.

NoteRemarks

sp_trace_setfilter è un SQL ServerSQL Server stored procedure che esegue molte delle azioni eseguite dalle stored procedure estese disponibili nelle versioni precedenti di SQL ServerSQL Server.sp_trace_setfilter is a SQL ServerSQL Server stored procedure that performs many of the actions previously executed by extended stored procedures available in earlier versions of SQL ServerSQL Server. Uso sp_trace_setfilter anziché le xp_trace_set*filtro delle stored procedure estese per creare, applicare, rimuovere o modificare i filtri sulle tracce.Use sp_trace_setfilter instead of the xp_trace_set*filter extended stored procedures to create, apply, remove, or manipulate filters on traces. Per altre informazioni, vedere filtrare una traccia.For more information, see Filter a Trace.

Tutti i filtri per una determinata colonna devono essere abilitati contemporaneamente in un'esecuzione della sp_trace_setfilter.All filters for a particular column must be enabled together in one execution of 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.For example, if a user intends to apply two filters on the application name column and one filter on the username column, the user must specify the filters on application name in sequence. SQL ServerSQL 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.returns an error if the user attempts to specify a filter on application name in one stored procedure call, followed by a filter on username, then another filter on application name.

I parametri di traccia SQL tutte le stored procedure (sp_trace_xx) sono fortemente tipizzati.Parameters of all SQL Trace stored procedures (sp_trace_xx) are strictly typed. Se tali 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.If these parameters are not called with the correct input parameter data types, as specified in the argument description, the stored procedure returns an error.

PermissionsPermissions

L'utente deve disporre delle autorizzazioni ALTER TRACE.User must have ALTER TRACE permission.

EsempiExamples

Nell'esempio seguente vengono impostati tre filtri in Trace 1.The following example sets three filters on Trace 1. I filtri N'SQLT%' e N'MS%' vengono applicati alla colonna AppName, valore 10, tramite l'operatore di confronto "LIKE".The filters N'SQLT%' and N'MS%' operate on one column (AppName, value 10) using the "LIKE" comparison operator. Il filtro N'joe' viene applicato a una colonna diversa, ovvero UserName, valore 11, tramite l'operatore di confronto "EQUAL".The filter N'joe' operates on a different column (UserName, value 11) using the "EQUAL" comparison operator.

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 ancheSee Also

sys.fn_trace_getfilterinfo (Transact-SQL) sys.fn_trace_getfilterinfo (Transact-SQL)
sys.fn_trace_getinfo (Transact-SQL) sys.fn_trace_getinfo (Transact-SQL)
Traccia SQLSQL Trace