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

返回代码值

0(成功)或 1(失败)

结果集

sp_depends 显示两个结果集。

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

列名

数据类型

说明

name

nvarchar(257)

存在依赖项的项名称。

类型

nvarchar(16)

项类型。

updated

nvarchar(7)

是否更新项。

selected

nvarchar(8)

项是否用于 SELECT 语句。

column

sysname

存在依赖项的列或参数。

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

列名

数据类型

说明

name

nvarchar(257)

存在依赖项的项名称。

类型

nvarchar(16)

项类型。

权限

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

示例

A.列出表的依赖关系

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

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

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

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

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

请参阅

参考

数据库引擎存储过程 (Transact-SQL)

EXECUTE (Transact-SQL)

sp_help (Transact-SQL)

系统存储过程 (Transact-SQL)

sys.sql_dependencies (Transact-SQL)