sp_depends (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)