我使用带有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运算符来删除那些字符(],[),但我不知道如何... 有什么建议吗?
答案 0 :(得分:0)
经过一番调查后,我认为一个好的解决方案是通过object_id进行过滤,而不是通过操纵SQL字符串来查找对象名称