如何搜索Sql Server 2008 R2存储过程的字符串?

mat*_*tao 13 sql-server join sql-server-2000 outer-join sql-server-2008

我正在将遗留的SQLS2k迁移到2008R2,似乎所有数据访问都是通过存储过程完成的,并且任何自定义查询都使用旧的*= =*外连接语法.有超过一百个proc所以我不想单独打开每一个以查看它是否使用该语法(大多数不会),是否有一种方法可以查询元数据以获取一个procs/functions/views列表/触发器,然后循环搜索*==*字符串,打印出违规对象的名称?

我的背景是oracle,我知道如何在那里找到元数据视图,但我对Sql Server有点新.降级兼容性版本不是一种选择.

谢谢!

gbn*_*gbn 29

免费 Red Gate SQL搜索?

或者查询sys.sql_modules

SELECT OBJECT_NAME(object_id)
FROM sys.sql_modules
WHERE definition LIKE '%=*%' OR definition LIKE '%*=%'
Run Code Online (Sandbox Code Playgroud)

注意:INFORMATION_SCHEMA视图和syscomments截断定义,因此不可靠.