Por causa de uma versão desatualizada do SQL Server, tenho que usar rastreamentos do lado do servidor para coletar algumas informações, mas se tento implementá-lo, recebo o erro Filters with the same event column ID must be grouped together
. Meu código:
exec sp_trace_setfilter 2, 10, 0, 7, N'SQL Server Profiler%'
exec sp_trace_setfilter 2, 10, 0, 7, N'DatabaseMail%'
exec sp_trace_setfilter 2, 10, 0, 7, N'SQLAgent%'
Exemplo de KnowledgeBase ( https://learn.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-trace-setfilter-transact-sql?view=sql-server-ver16 ):
sp_trace_setfilter 1, 10, 0, 6, N'SQLT%';
sp_trace_setfilter 1, 10, 0, 6, N'MS%';
Muitas vezes pode ser algo óbvio, mas não tenho ideia de por que não funciona (não é ponto e vírgula).
Algum de vocês tem alguma ideia?
Parece que o rastreamento já possui um ou mais filtros na coluna ApplicationName (coluna 10) seguidos por filtros em outras colunas. Você obtém o erro ao adicionar outro filtro ApplicationName porque a coluna é diferente do último filtro adicionado. O SQL Trace requer que todos os filtros em uma determinada coluna sejam adicionados em sequência (ou seja, "agrupados").
Exemplo de script de problema:
Roteiro corrigido:
Observe que esse requisito de agrupamento se aplica ao script de criação de rastreamento inicial, bem como quando os filtros são adicionados posteriormente. A implicação ao adicionar outro filtro a um rastreamento é uma das seguintes:
A menos que você forneça o código completo, descobrir o que está errado será difícil. Usei os mesmos filtros que você forneceu na pergunta e pude iniciar com êxito uma parada de um rastreamento do lado do servidor. Estou usando:
Aqui está a amostra que executei: