2009-11-17 51 views

回答

1

SSMS依靠SMO来提取依赖关系。 DependencyWalker类,即。您可以将其封装在您的代码中,并且SMO还可以使用Scripter类编写对象定义的脚本(这也是SSMS用来脚本化对象定义的对象)。

6

首先,你可以试试这个链接Understanding SQL Dependencies

其次,你有多种选择来检查使用sql_expression_dependencies表,看看X的Y上的依赖关系,运行以下查询的相关性

SELECT * 
FROM sys.sql_expression_dependencies 
WHERE referencing_id = OBJECT_ID('X') 
    AND referenced_id = OBJECT_ID('Y') 
    AND referenced_schema_name = 'dbo' 
    AND referenced_entity_name = 'Y' 
    AND referenced_database_name IS NULL 
    AND referenced_server_name IS NULL; 

使用syscomments表,SQL Server的syscomments表中存储的每个视图,规则,缺省值,触发器,CHECK和DEFAULT约束,并在数据库中存储过程的原始SQL定义语句。这是很多信息!您可以查询该表列出以下表格

SELECT * 
FROM syscomments 
INNER JOIN sysobjects sysobj ON syscomments.id = sysobj.id 
WHERE charindex('your object to check', text) > 0 

使用sp_depends存储过程,至极显示有关数据库对象依赖性的信息,例如使用SQL语句依赖的对象:依赖于表的视图和过程或视图,以及视图或程序所依赖的表格和视图

EXEC sp_depends @objname = N'your object to check' 
+0

很好的答案。谢谢。几年后有用。 – 2013-10-08 21:34:46