查询以查找依赖于SQL Server 2008中的表的Table对象

时间:2015-03-04 07:16:22

标签: sql-server sql-server-2008

我在网上搜索找到上述主题的解决方案但未能找到对我有用的东西。我只想要一个SQL语句来查询数据库并显示依赖于特定表的表。我尝试了sp_depends方法,但它只引出了存储过程并检查了结果集中的约束,但没有表格。

我偶然发现了sys.sql_expression_dependencies,但我发现它对SQL Server 2008不起作用。我需要一些帮助来完成这项工作。

非常感谢。

3 个答案:

答案 0 :(得分:0)

我们可以在SQL Server管理工作室中执行此操作右键单击表格并选择“查看依赖关系”

使用查询

Select
S.[name] as 'Dependent_Tables'
From
sys.objects S inner join sys.sysreferences R
on S.object_id = R.rkeyid
Where
S.[type] = 'U' AND
R.fkeyid = OBJECT_ID('tablename')

另一种方法

SELECT DISTINCT name, so.type 
FROM sys.objects AS so 
INNER JOIN sys.sql_expression_dependencies AS sed 
ON so.object_id = sed.referencing_id 
WHERE sed.referenced_id = OBJECT_ID('[tablename]');

第二种方法也选择程序,视图。

答案 1 :(得分:0)

使用dm_sql_referencing_entities系统视图,该视图将为您提供依赖于table

的对象
SELECT referencing_schema_name,
       referencing_entity_name,
       referencing_id,
       referencing_class_desc
FROM   sys.Dm_sql_referencing_entities ('schema.Tablename', 'OBJECT') 

答案 2 :(得分:0)

我找到了解决方法,并且我赞不过 Arunprasanth KV 给予回应,引导我找到解决方案。在正确研究了表格的模式之后,以下查询给了我我想要的内容:

Select
S.[name] 
From
sys.objects S inner join sys.sysreferences R
on S.object_id = R.fkeyid
Where
S.[type] = 'U' AND
R.rkeyid = OBJECT_ID('TableName')
GO