我将旧版sqlS2k迁移到2008R2,似乎所有数据访问都是通过存储过程完成的,任何自定义查询都使用旧的* = = *外连接语法.有超过一百个procs,所以我不想单独打开每一个,看看它是否使用该语法(大多数不会),有没有办法我可以查询元数据的procs / functions / views列表/触发器,然后循环搜索* =或= *字符串,打印出违规对象的名称?
我的背景是oracle,我知道如何在那里找到元数据视图,但我对sql Server有点新.降低兼容性版本不是一个选项.
谢谢!
解决方法
Free Red Gate SQL Search?
SELECT OBJECT_NAME(object_id) FROM sys.sql_modules WHERE definition LIKE '%=*%' OR definition LIKE '%*=%'
注意:INFORMATION_SCHEMA视图和syscomments截断定义,因此是不可靠的.