sp_depends (Transact-SQL)

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

重要说明重要提示

后续版本的 Microsoft 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
    要检查其依赖关系的数据库对象。该对象可以是表、视图、存储过程、用户定义函数或触发器。bject_name 的数据类型为 nvarchar(776),无默认值。

返回代码值

0(成功)或 1(失败)

结果集

sp_depends 显示两个结果集。

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

列名

数据类型

说明

名称

nvarchar(257)

存在依赖项的项名称。

type

nvarchar(16)

项类型。

updated

nvarchar(7)

是否更新项。

selected

nvarchar(8)

项是否用于 SELECT 语句。

column

sysname

存在依赖项的列或参数。

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

列名

数据类型

说明

名称

nvarchar(257)

存在依赖项的项名称。

type

nvarchar(16)

项类型。

权限

要求具有 public 角色的成员身份。

示例

A. 列出表的依赖关系

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

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

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

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

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