如何在扩展事件中过滤表名?

时间:2015-01-08 08:18:59

标签: sql-server extended-events

我使用带有Where子句的脚本创建了一个扩展事件会话,以便过滤引用名称为MySchema.MyTable的表的命令:

WHERE ([sqlserver].[like_i_sql_unicode_string]([sqlserver].[sql_text],N'%MySchema.MyTbl%'))

问题是该表可以以下列四种方式之一出现:

MySchema.MyTable

[MySchema].MyTable

MySchema.[MyTable]

[MySchema].[MyTable]

我可以用al那些选项创建一个长的Where子句,并在它们之间创建“Or”运算符(一个找到一个很好的解决字符歧义的方法),[),但它不是很优雅。 我希望我可以使用Replace运算符来删除那些字符(],[),但我不知道如何... 有什么建议吗?

1 个答案:

答案 0 :(得分:0)

经过一番调查后,我认为一个好的解决方案是通过object_id进行过滤,而不是通过操纵SQL字符串来查找对象名称