SQL Server 中的 sp_depends,都有哪些可能的依赖关系?

Posted

技术标签:

【中文标题】SQL Server 中的 sp_depends,都有哪些可能的依赖关系?【英文标题】:sp_depends in SQL Server, what are possible dependencies?SQL Server 中的 sp_depends,有哪些可能的依赖关系? 【发布时间】:2012-08-29 12:35:44 【问题描述】:

我第一次这样使用sp_depends

sp_depends TestTable

结果我得到了一些存储过程和视图。现在,当我查看(Ctrl F for TestTable)存储过程和视图的脚本时,我看不到它们指的是TestTable

如果不使用脚本,是否还有其他依赖项?如果是怎么办?

【问题讨论】:

【参考方案1】:

sp_depends 是史前且不可靠的。

此功能将在 Microsoft SQL Server 的未来版本中删除。避免在新的开发工作中使用此功能,并计划修改当前使用此功能的应用程序。请改用sys.dm_sql_referencing_entities 和sys.dm_sql_referenced_entities。

更好的是,考虑使用 Red Gate 的免费 SQL 搜索工具...

【讨论】:

我没有 DMV/DMF 的访问权限,也没有安装 Red Gate 工具的选项 @Pritesh: 然后使用 sys.sql_modules:***.com/… 如果你不能,你别无他法。而且Red Gate的工具是一个SSMS插件,不在服务器上 我确实从 sys.sql_modules 中选择 *,其中定义类似于 '%TestTable%' 我得到零记录,但 sp_depends 给了我 16 个 SP 和视图 我在这里写了关于问题的博客:sqlblog.com/blogs/aaron_bertrand/archive/2008/09/09/… @Pritesh 好吧,答案很简单:sp_depends 坏了,停止使用它。听取 gbn 的建议并阅读我的博文。【参考方案2】:

我编写了一个存储过程来搜索所有数据库中的所有存储过程以查找文本,并显示数据库名称、存储过程名称以及如何使用文本的示例。您还可以指定两个单词,它将仅显示使用这两个单词的存储过程。例如,这对于搜索表名和单词 INSERT 很有用。

如果您在不带任何参数的情况下调用它,它将帮助您了解如何使用它。 我的 GitHub 中还有其他数据库过程工具。

sp_FindInAllProcs

【讨论】:

以上是关于SQL Server 中的 sp_depends,都有哪些可能的依赖关系?的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 查询某张表对应依赖的视图存储过程函数

如何识别与 sybase 数据库中的表关联的触发器?

数据库存储过程都有哪些,面试题

使用 SQLBulkCopy - SQL Server 2016 中的表比 SQL Server 2014 中的表大得多

本地 SQL Server 实例和 Azure SQL Server 中的 LoadData 脚本

如何使用sql server数据库中的标量值函数