您的位置:首页 > 数据库

数据库对象关系查询

2013-05-21 18:02 162 查看
/*
sql_expression_dependencies 视图记录了该数据库的所有对象和引用对象关系,
通过调用递归功能,
可以找到所有对象
*/
with cte as
(
SELECT
OBJECT_NAME(referencing_id) AS referencing_entity_name,
sed.referenced_entity_name,
xtype
FROM sys.sql_expression_dependencies AS sed
INNER JOIN sys.sysobjects AS o ON sed.referencing_id = o.id
WHERE referencing_id = OBJECT_ID('sp_upstatus')
union all
SELECT
OBJECT_NAME(referencing_id) AS referencing_entity_name,
sed.referenced_entity_name,
o.xtype
FROM sys.sql_expression_dependencies AS sed
INNER JOIN sysobjects AS o ON sed.referencing_id = o.id
INNER JOIN cte on OBJECT_NAME(sed.referencing_id)=cte.referenced_entity_name
),cte2 as
(
select
distinct
referencing_entity_name,
xtype
from cte
union
select
distinct
referenced_entity_name,
o.XTYPE
from cte
left join sysobjects o on cte.referenced_entity_name=o.name
)
select * from cte2
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐