加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql – 在所有数据库中搜索存储过程/函数

发布时间:2020-12-12 06:49:44 所属栏目:MsSql教程 来源:网络整理
导读:我想在所有数据库中的所有过程/函数等中搜索特定文本.我设法从这个 answer创建了所需的查询,但看起来OBJECT_DEFINITION(OBJECT_ID(SPECIFIC_NAME))为除当前数据库之外的所有数据库返回NULL. sp_msforeachdb 'SELECT ''?'' AS DB,SPECIFIC_NAME,OBJECT_DEFINIT
我想在所有数据库中的所有过程/函数等中搜索特定文本.我设法从这个 answer创建了所需的查询,但看起来OBJECT_DEFINITION(OBJECT_ID(SPECIFIC_NAME))为除当前数据库之外的所有数据库返回NULL.
sp_msforeachdb 'SELECT ''?'' AS DB,SPECIFIC_NAME,OBJECT_DEFINITION(OBJECT_ID(SPECIFIC_NAME)) FROM [?].INFORMATION_SCHEMA.ROUTINES'

解决方法

问题是OBJECT_ID不能以这种方式使用.它仅适用于当前数据库.尝试直接从INFORMATION_SCHEMA.ROUTINES返回ROUTINE_DEFINITION.这个限制为4000个字符.我将尝试在SO上找到我的其他答案,这使我的解决方法使用MS元数据视图.

看看这个:

Can you search SQL Server 2005 Stored Procedure content?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读