की जरूरत के बिना अपनी समस्या को हल करना चाहिए कर सकते हैं
Higarian, आपका कोड मेरे लिए बहुत उपयोगी था। मैंने परिपत्र निर्भरताओं को हटाने, तालिका संदर्भों को शामिल करने और ऑब्जेक्टपाथ द्वारा क्रमबद्ध करने के लिए इसे थोड़ा सा परिष्कृत किया।
;with ObjectHierarchy (Base_Object_Id , Base_Cchema_Id , Base_Object_Name , Base_Object_Type, object_id , Schema_Id , Name , Type_Desc , Level , Obj_Path)
as
(select so.object_id as Base_Object_Id
, so.schema_id as Base_Cchema_Id
, so.name as Base_Object_Name
, so.type_desc as Base_Object_Type
, so.object_id as object_id
, so.schema_id as Schema_Id
, so.name
, so.type_desc
, 0 as Level
, convert (nvarchar (1000) , N'/' + so.name) as Obj_Path
from sys.objects so
left join sys.sql_expression_dependencies ed on ed.referenced_id = so.object_id
left join sys.objects rso on rso.object_id = ed.referencing_id
where rso.type is null
and so.type in ('P', 'V', 'IF', 'FN', 'TF')
union all
select cp.Base_Object_Id as Base_Object_Id
, cp.Base_Cchema_Id
, cp.Base_Object_Name
, cp.Base_Object_Type
, so.object_id as object_id
, so.schema_id as ID_Schema
, so.name
, so.type_desc
, Level + 1 as Level
, convert (nvarchar (1000) , cp.Obj_Path + N'/' + so.name) as Obj_Path
from sys.objects so
inner join sys.sql_expression_dependencies ed on ed.referenced_id = so.object_id
inner join sys.objects rso on rso.object_id = ed.referencing_id
inner join ObjectHierarchy as cp on rso.object_id = cp.object_id and rso.object_id <> so.object_id
where so.type in ('P', 'V', 'IF', 'FN', 'TF', 'U')
and (rso.type is null or rso.type in ('P', 'V', 'IF', 'FN', 'TF', 'U'))
and cp.Obj_Path not like '%/' + so.name + '/%') -- prevent cycles n hierarcy
select Base_Object_Name
, Base_Object_Type
, REPLICATE (' ' , Level) + Name as Indented_Name
, SCHEMA_NAME (Schema_Id) + '.' + Name as object_id
, Type_Desc as Object_Type
, Level
, Obj_Path
from ObjectHierarchy as p
order by Obj_Path
देखें निर्भरता बहुत अच्छा लगता है। और मुझे पता है कि मैं इसे sys.sql_dependencies से प्राप्त कर सकता हूं और मजेदार के लिए "अद्भुत" जीयूआई के साथ अपना स्वयं का टूल बना सकता हूं। बहुत धन्यवाद! – purum
मदद करने में खुशी हुई।कृपया इसे समाप्त करते समय कोड पोस्ट करें :) – Diego