Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Tillämpar ett filter på en spårning.
sp_trace_setfilter kan endast köras på befintliga spårningar som stoppas (@status är 0). SQL Server returnerar ett fel om den här lagrade proceduren körs på en spårning som inte finns eller vars @status inte 0.
Viktig
Den här funktionen tas bort i en framtida version av SQL Server. Undvik att använda den här funktionen i nytt utvecklingsarbete och planera att ändra program som för närvarande använder den här funktionen. Använd Utökade händelser i stället.
Transact-SQL syntaxkonventioner
Syntax
sp_trace_setfilter
[ @traceid = ] traceid
, [ @columnid = ] columnid
, [ @logical_operator = ] logical_operator
, [ @comparison_operator = ] comparison_operator
, [ @value = ] value
[ ; ]
Argument
Viktig
Argument för utökade lagrade procedurer måste anges i den specifika ordning som beskrivs i avsnittet Syntax. Om parametrarna anges i fel ordning visas ett felmeddelande.
[ @traceid = ] traceid
ID:t för spårningen som filtret har angetts till. @traceid är int, utan standard. Användaren använder det här @traceid värdet för att identifiera, ändra och kontrollera spårningen.
[ @columnid = ] columnid
ID:t för kolumnen där filtret tillämpas.
@columnid är int, utan standard. Om @columnid är NULLrensar SQL Server alla filter för den angivna spårningen.
[ @logical_operator = ] logical_operator
Anger om operatorn AND (0) eller OR (1) tillämpas.
@logical_operator är int, utan standard.
[ @comparison_operator = ] comparison_operator
Anger vilken typ av jämförelse som ska göras. @comparison_operator är int, utan standard. Tabellen innehåller jämförelseoperatorerna och deras representativa värden.
| Värde | Jämförelseoperator |
|---|---|
0 |
= (lika) |
1 |
<> (inte lika med) |
2 |
> (större än) |
3 |
< (mindre än) |
4 |
>= (större än eller lika med) |
5 |
<= (mindre än eller lika med) |
6 |
LIKE |
7 |
NOT LIKE |
[ @value = ] värde
Anger det värde som ska filtreras på. Datatypen för @value måste matcha datatypen för kolumnen som ska filtreras. Om filtret till exempel har angetts för en objekt-ID-kolumn som är en int datatyp måste @value vara int. Om @value är nvarchar eller varbinarykan den ha en maximal längd på 8 000.
När jämförelseoperatorn är LIKE eller NOT LIKEkan den logiska operatorn inkludera % eller annat filter som är lämpligt för den LIKE åtgärden.
Du kan ange NULL för @value för att filtrera bort händelser med NULL kolumnvärden. Endast operatorerna 0 (= Equal) och 1 (<> Not Equal) är giltiga med NULL. I det här fallet är dessa operatorer likvärdiga med operatorerna Transact-SQL IS NULL och IS NOT NULL.
Om du vill använda filtret mellan ett intervall med kolumnvärden måste sp_trace_setfilter köras två gånger: en gång med en jämförelseoperator som är större än eller lika med (>=) och en annan gång med en operator som är mindre än eller lika med (<=).
Mer information om datakolumndatatyper finns i SQL Server Event Class Reference.
Returnera kodvärden
I följande tabell beskrivs de kodvärden som du kan få efter att den lagrade proceduren har slutförts.
| Returnera kod | Beskrivning |
|---|---|
0 |
Inget fel. |
1 |
Okänt fel. |
2 |
Spårningen körs för närvarande. Om du ändrar spårningen just nu resulterar det i ett fel. |
4 |
Den angivna kolumnen är inte giltig. |
5 |
Den angivna kolumnen tillåts inte för filtrering. Det här värdet returneras endast från sp_trace_setfilter. |
6 |
Den angivna jämförelseoperatorn är inte giltig. |
7 |
Den angivna logiska operatorn är inte giltig. |
9 |
Det angivna spårningshandtaget är inte giltigt. |
13 |
Slut på minne. Returneras när det inte finns tillräckligt med minne för att utföra den angivna åtgärden. |
16 |
Funktionen är inte giltig för den här spårningen. |
Anmärkningar
sp_trace_setfilter är en lagrad SQL Server-procedur som utför många av de åtgärder som tidigare utfördes av utökade lagrade procedurer som är tillgängliga i tidigare versioner av SQL Server. Använd sp_trace_setfilter i stället för xp_trace_set*filter utökade lagrade procedurer för att skapa, tillämpa, ta bort eller manipulera filter på spårningar. Mer information finns i Filtrera en spårning.
Alla filter för en viss kolumn måste aktiveras tillsammans i en körning av sp_trace_setfilter. Om en användare till exempel har för avsikt att tillämpa två filter på kolumnen programnamn och ett filter på användarnamnskolumnen måste användaren ange filtren för programnamnet i följd. SQL Server returnerar ett fel om användaren försöker ange ett filter för programmets namn i ett lagrat proceduranrop, följt av ett filter på användarnamnet och sedan ett annat filter på programnamnet.
Parametrar för alla SQL Trace-lagrade procedurer (sp_trace_*) skrivs strikt. Om dessa parametrar inte anropas med rätt datatyper för indataparametrar, som anges i argumentbeskrivningen, returnerar den lagrade proceduren ett fel.
Behörigheter
Kräver ALTER TRACE-behörighet.
Exempel
I följande exempel anges tre filter på Trace 1. Filtren N'SQLT%' och N'MS%' fungera på en kolumn (AppName, värde 10) med hjälp av jämförelseoperatorn "LIKE". Filtret N'joe' fungerar på en annan kolumn (UserName, värde 11) med hjälp av jämförelseoperatorn "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';