Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何在Sql Server 2008 R2存储过程中搜索字符串?_Sql Server_Sql Server 2008_Join_Sql Server 2000_Outer Join - Fatal编程技术网

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

Sql server 如何在Sql Server 2008 R2存储过程中搜索字符串?,sql-server,sql-server-2008,join,sql-server-2000,outer-join,Sql Server,Sql Server 2008,Join,Sql Server 2000,Outer Join,我正在将一个旧式SQLS2k迁移到2008R2,似乎所有的数据访问都是通过存储的进程完成的,任何自定义查询都使用旧式的*==*外部联接语法。有上百个进程,所以我不想单独打开每个进程来查看它是否使用了这种语法(大多数不会),有没有办法查询元数据以获得进程/函数/视图/触发器列表,然后循环搜索*=或=*字符串,打印出有问题对象的名称 我的背景是oracle,我知道如何在那里找到元数据视图,但我对Sql Server有点陌生。降级兼容版本不是一个选项 谢谢 或查询 注意:信息\u架构视图和系统注释截

我正在将一个旧式SQLS2k迁移到2008R2,似乎所有的数据访问都是通过存储的进程完成的,任何自定义查询都使用旧式的
*=
=*
外部联接语法。有上百个进程,所以我不想单独打开每个进程来查看它是否使用了这种语法(大多数不会),有没有办法查询元数据以获得进程/函数/视图/触发器列表,然后循环搜索
*=
=*
字符串,打印出有问题对象的名称

我的背景是oracle,我知道如何在那里找到元数据视图,但我对Sql Server有点陌生。降级兼容版本不是一个选项

谢谢

或查询


注意:信息\u架构视图和系统注释截断了定义,因此不可靠。

使用查询的问题是,除非运行DAC连接类型,否则如果存储过程是加密的,则这些查询不起作用


这是第三方工具派上用场的地方,因为它们可以帮助您轻松完成这项工作。我使用的是免费的,但我想你不会错用红门或任何其他工具。

+1 for Red Gate SQL Search-对于DB程序员(和DBA)来说绝对是不可或缺的免费工具!完美的已接受:)唯一的问题是它告诉我所有日志触发器都使用旧语法。。。FML!另外,刚刚安装了红门工具,非常棒,谢谢!很高兴您能解决这个问题,即使在SQl sserver 2000中也不应该使用该代码,因为它不可靠,并且不总是进行外部连接,有时它会进行交叉连接。希望同时删除这些查询中的所有其他隐式连接,因为混合隐式连接和显式连接也可能导致问题。隐式联接无论如何都是SQL反模式,不应在任何数据库中使用。有关示例,请参见链接:
SELECT OBJECT_NAME(object_id)
FROM sys.sql_modules
WHERE definition LIKE '%=*%' OR definition LIKE '%*=%'