/*
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
數據庫對象關係查詢
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.