sp_depends (Transact-SQL)

适用于:SQL Server

显示有关数据库对象依赖关系的信息,例如,依赖于表或视图的视图和过程,以及视图或过程所依赖的表和视图。 不报告对当前数据库以外对象的引用。

重要

在 SQL Server的未来版本中将删除此功能。 请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。 请改用 sys.dm_sql_referencing_entitiessys.dm_sql_referenced_entities

Transact-SQL 语法约定

语法

  
sp_depends [ @objname = ] '<object>'   
  
<object> ::=  
{  
    [ database_name. [ schema_name ] . | schema_name.  
    object_name  
}  

参数

database_name
数据库的名称。

schema_name
对象所属架构的名称。

object_name
要检查其依赖关系的数据库对象。 该对象可以是表、视图、存储过程、用户定义函数或触发器。 object_namenvarchar(776),无默认值。

返回代码值

0(成功)或 1(失败)

结果集

sp_depends 显示两个结果集。

以下结果集显示对象所依赖的对象><

列名称 数据类型 说明
name nvarchar(257 存在依赖项的项名称。
type nvarchar(16) 项目的类型。
更新 nvarchar(7) 是否更新项。
选定 nvarchar(8) 项是否用于 SELECT 语句。
column sysname 存在依赖项的列或参数。

以下结果集显示依赖于对象的对象>。<

列名称 数据类型 说明
name nvarchar(257 存在依赖项的项名称。
type nvarchar(16) 项目的类型。

权限

要求 公共 角色具有成员身份。

示例

A. 列出表的依赖关系

以下示例列出在 AdventureWorks2022 数据库中依赖于 Sales.Customer 表的数据库对象。 同时指定了架构名和表名。

USE AdventureWorks2022;  
GO  
EXEC sp_depends @objname = N'Sales.Customer' ;  

B. 列出触发器的依赖关系

以下示例列出 iWorkOrder 触发器所依赖的数据库对象。

EXEC sp_depends @objname = N'AdventureWorks2022.Production.iWorkOrder' ;  

另请参阅

数据库引擎存储过程 (Transact-SQL)
EXECUTE (Transact-SQL)
sp_help (Transact-SQL)
系统存储过程 (Transact-SQL)
sys.sql_dependencies (Transact-SQL)