sp_depends (Transact-SQL)

适用于SQL Server

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

重要

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

Transact-SQL 语法约定

语法

sp_depends [ @objname = ] N'objname'

<objname> ::=
{
    [ database_name. [ schema_name ] . | schema_name. ]
    object_name
}

[ ; ]

参数

[ @objname = ] N'objname'

@objname为 nvarchar(776),没有默认值。

  • database_name

    数据库的名称。

  • schema_name

    对象所属的架构的名称。

  • object_name

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

返回代码值

0(成功)或 1(失败)。

结果集

sp_depends 显示两个结果集。

以下结果集显示@objname所依赖的对象

列名称 数据类型 描述
name nvarchar(257) 存在依赖项的项名称。
type nvarchar(16) 项目的类型。
updated nvarchar(7) 指定项是否已更新。
selected nvarchar(8) 指定项是否在语句中使用 SELECT
column sysname 存在依赖项的列或参数。

以下结果集显示依赖于 @objname的对象。

列名称 数据类型 描述
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';