sp_depends (Transact-SQL)

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

主题链接图标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 显示两个结果集。

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

列名 数据类型 说明

名称

nvarchar(257)

存在依赖项的项名称。

类型

nvarchar(16)

项类型。

updated

nvarchar(7)

是否更新项。

selected

nvarchar(8)

项是否用于 SELECT 语句。

column

sysname

存在依赖项的列或参数。

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

列名 数据类型 说明

名称

nvarchar(257)

存在依赖项的项名称。

type

nvarchar(16)

项类型。

备注

若一个对象引用另一个对象,则认为前者依赖后者。sp_depends 通过查看 sys.sql_dependencies 目录视图确定依赖关系。

权限

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

示例

A. 列出表的依赖关系

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

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

下面是结果集:

In the current database, the specified object references the following:
Name                  type             updated   selected  column
----------------------------------------------------------------
Dbo.ufnLeadingZeros   scalar function  no        no        NULL
Sales.Customer        user table       no        no        CustomerID

In the current database, the specified object is referenced by the following:
name                            type
------------------------------- ---------------- 
Sales.CK_Customer_CustomerType  check cns
Sales.Customer                  user table
Sales.vIndividualCustomer       view
Sales.vStoreWithDemographics    view

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

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

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

请参阅

参考

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

其他资源

了解 SQL 依赖关系

帮助和信息

获取 SQL Server 2005 帮助