sp_msdependencies
这一非公开存储过程,可以用来描述一个对象在Database中的依赖关系。
语法:
代码sp_msdependencies [<object name> ] , [<object type>], [<Flags>], [<objlist>]
还有一个int类型的参数@intrans,没有任何意义,这个存储过程所有参数可以留为Null值,
如果想查看里面的代码内容可以使用命令:

代码Exec sp_helptext sp_msdependencies
如果想查看各个参数的使用方法,可以使用命令:

代码Exec sp_msdependencies '?'
下面测试几个例子来看看
创建test环境:

代码use Test
go
If OBJECT_ID('vSalaryPay') Is Not Null
Drop View vSalaryPay
If OBJECT_ID('SalaryPay') Is Not Null
Drop Table SalaryPay
If OBJECT_ID('Employee') Is Not Null
Drop Table Employee
Go
create table Employee(ID int Identity(1,1)Primary Key,
Code nvarchar(50),
LName nvarchar(50),
FName nvarchar(50),
Sex bit Constraint DF__Employee__Sex Default(1)
)
Create Table SalaryPay(ID int Identity(1,1) Primary Key,
EmployeeID int Not Null,
PayMonth datetime,
Amount money,
Constraint FK_SalaryPay_EmployeeID Foreign Key (EmployeeID) References Employee(ID)
)
Go
Create View vSalaryPay
As
Select a.Code,a.LName,a.FName,b.PayMonth,b.Amount
From Employee As a
Inner Join SalaryPay As b On b.EmployeeID=a.ID
Go
--1.查询所有user table依赖关系
代码Exec sp_msdependencies Null,3

--2.查询所有view依赖关系
代码Exec sp_msdependencies Null,2

--3查询表SalaryPay的依赖对象
代码Exec sp_msdependencies 'SalaryPay'
--4.规则、默认值、数据类型是没有依赖关系的
代码Exec sp_msdependencies null,6
会收到信息:Rules, defaults, and datatypes do not have dependencies.