SQL使用LIKE谓词匹配空字符串

时间:2016-10-21 03:56:44

标签: sql sql-server

我想通过搜索column1来查找哪个SP名为sys.sql_module的列被UPDATE查询修改,并且由于该列也用于SELECT查询,我认为最好使用{{1标准为'%Column1 =%'谓词。

但是,系统编码标准并未严格应用,因此在我们的数据库中存在多种类型的编码:LIKEcolumn1=column1 =column1 {tab} =,{{ 1}}等等。我绝对不能使用column1 +=作为谓词,但我怎样才能找到所有(至少大部分)它们符合我的初始谓词?

假设我接受column1 {CR}{LF} =%column1%=%之间的最多10个字符。

1 个答案:

答案 0 :(得分:0)

我过去也处于同样的境地。我的工作是什么,我从sql_modules定义列本身删除了每个空格,新行和制表符,然后与我搜索的字符串进行比较。

Select SP_Def from
 (SELECT REPLACE(REPLACE(REPLACE(sm.definition, ' ',''), CHAR(13) +CHAR(10),''),CHAR(9),'') as SP_Def
  FROM sys.sql_modules AS sm ) a
where SP_Def like '%column1=%'