如何在 SQL Server 中查找使用“我的数据库”的存储过程

Posted

技术标签:

【中文标题】如何在 SQL Server 中查找使用“我的数据库”的存储过程【英文标题】:How to find stored procedures which are using 'My Database' in SQL Server 【发布时间】:2016-08-04 15:34:19 【问题描述】:

有什么方法可以找到引用My Database 创建了多少存储过程?

如果我将数据库名称从My Database 更改为No Database,如何将所有引用我的旧数据库名称的存储过程修改为新数据库名称?

【问题讨论】:

Query to list all stored procedures的可能重复 可以帮助(手动)使用免费搜索工具(例如 Redgate SQL Search)完成您的目标 【参考方案1】:

如果您的存储过程中实际上包含文本“我的数据库”,您可以使用它,将“ADB”替换为“数据库名称”:

SELECT DISTINCT o.name AS Object_Name,o.type_desc
FROM sys.sql_modules m 
INNER JOIN sys.objects o 
ON m.object_id=o.object_id
WHERE m.definition Like '%ABD%'

【讨论】:

谢谢。此查询会调出所有存储过程。如何使用我的新数据库名称修改这些存储过程?? 您可以使用其他系统视图进行替换。我建议遵循 Mike Guthrie 关于使用 Redgate SQL Search 等搜索工具的建议。您也可以使用它修改存储的过程。

以上是关于如何在 SQL Server 中查找使用“我的数据库”的存储过程的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server:如何在视图中查找未使用的字段

SQL Server中如何识别查找未使用的索引(unused indexes)

如何在 SQL Server 中查找上次执行的查询

如何在 SQL Server 过程/触发器中查找文本?

如何在SQL Server 2008R2中查找未使用的列

Sql Server如何在具有不同后缀的不同表中查找值