2014-12-25 45 views
3

我有一个存储过程,我们称之为'MyStoredProc',它每隔几秒就会调用一次。SQL Server分析器没有通过TextData列过滤器进行过滤

我想过滤它,因为它是混乱的视图。

的PROC被称为像exec sp_executesql N'Exec @Return = [dbo].[MyStoredProc]....

我已经在的TextData列中有两个Not Like滤波器,其它文本正常工作。然而,这第三个不起作用。电话仍在播出。

我输入了不同的变体:%[MyStoredProc]%或%MyStoredProc%或MyStoredProc。

他们不工作。
这是什么适当的语法? 也可以TextData过滤器工作的变量名?

我正在使用Profiler 2014作为2012引擎的目标。

+0

代码是什么?这不是一个编程问题。你不明白什么部分? –

+1

这是一个关于如何使用程序员使用的工具的问题,不应该因为给定的原因而关闭。操作提供了所有需要回答的信息。请重新投票。 – rene

+0

我不能重现这个问题('MyStoredProc'是错的,所以'%[MyStoredProc]%'[由于方式(NOT)LIKE解释方括号](http://stackoverflow.com/questions/13198870/a -couple-of-basic-sql-profiler-questions),但'%MyStoredProc%'应该工作)。我的设置稍有不同(Profiler和引擎都是SQL2014),但如果这有所作为,我会感到惊讶。请把完整的SQL语句放在你的问题中,我假设那里还有一个'DECLARE @ Return'?您是否可以通过从SQL Server Management Studio手动执行完全相同的SQL语句来重现该问题? –

回答

1

How Filtering String From profiler textData 正如你所看到的,你应该把过程的名字(我建议不用其他架构名称,DBO)对%%之间(不带支架)

+1

我在我的问题中提到,这没有奏效。 –

+1

@Tony,这是正确的语法,所以必须有别的东西导致你的问题。没有模式名称的建议也是合理的,因为有时文本数据将显示为'... [dbo]。[MyStoredProc] ...'。在上下文中小心使用方括号(例如'%[MyStoredProc]%'),因为它们对于T-SQL LIKE子句有特殊的含义。您可以改为使用下划线。 – OutstandingBill

+0

我有一个**不喜欢**的过滤器,我试图为** Like **添加一个过滤器......但是这不起作用。看来我只能在一个组中添加过滤器(** Like **或** Not Like **)...但不能同时添加。 –

1

不知道这将有助于OP,但我已经多次遇到这种情况,只需用各种类型的查询“摆弄”,将数据导出到Excel,然后手动过滤结果。

但是,我发现一种方法来解决这个问题,似乎一直工作。首先,创建一个新的Profiler模板(文件>模板>新模板...)使用所有需要的设置设置模板,或使用选项在现有模板上创建新模板:。我知道我最初使用这个选项来模板,我认为这可能是问题所在。

现在,当您去添加新过滤器时,您需要通过编辑模板来添加它们。如果我更新了跟踪的属性值,我无法让我的TextData过滤器正常工作。相反,请转到文件>模板>编辑模板...并选择并更新您的模板。

保存模板,关闭Profiler并重新打开模板。当你运行模板时,过滤器应该工作。

我不确定是否有更简单的方法,但我确实知道,在保存,关闭并重新打开我的模板之前,我无法让我的过滤器工作。我不确定问题是什么,但我猜SQL Server Profiler正在缓存一些旧的过滤器值,这些旧的过滤器值没有使用TextData字段进行更新。发生这种情况时,应用程序的重新启动似乎是唯一的修复方法。