我想通过搜索column1
来查找哪个SP名为sys.sql_module
的列被UPDATE查询修改,并且由于该列也用于SELECT查询,我认为最好使用{{1标准为'%Column1 =%'
谓词。
但是,系统编码标准并未严格应用,因此在我们的数据库中存在多种类型的编码:LIKE
,column1=
,column1 =
,column1 {tab} =
,{{ 1}}等等。我绝对不能使用column1 +=
作为谓词,但我怎样才能找到所有(至少大部分)它们符合我的初始谓词?
假设我接受column1 {CR}{LF} =
和%column1%=%
之间的最多10个字符。
答案 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=%'