CREATE VIEW Metadata.Dependencies
AS
SELECT
o.type COLLATE SQL_Latin1_General_CP1_CI_AS AS RingType,
so.TypeName AS RingTypeName,
QUOTENAME(s.NAME) + '.' + QUOTENAME(o.name) AS RingFQN,
s.Name AS RingSchema,
o.name AS RingName,
oo.type COLLATE SQL_Latin1_General_CP1_CI_AS AS RedType,
soo.TypeName AS RedTypeName,
QUOTENAME(ss.NAME) + '.' + QUOTENAME(oo.name) AS RedFQN,
ss.name AS RedSchema,
oo.name AS RedName,
cc.name AS RedColumn,
a.is_selected AS IsSelected,
a.is_updated AS IsUpdated,
a.is_select_all AS IsSelectAll,
a.class_desc COLLATE SQL_Latin1_General_CP1_CI_AS AS ClassDesc,
o.OBJECT_ID AS RingObjectId,
oo.OBJECT_ID AS RedObjectId
FROM sys.sql_dependencies a (NOLOCK)
LEFT OUTER JOIN sys.objects o (NOLOCK) ON o.OBJECT_ID = a.OBJECT_ID
LEFT OUTER JOIN sys.schemas s (NOLOCK) ON s.SCHEMA_ID = o.SCHEMA_ID
LEFT OUTER JOIN sys.objects oo (NOLOCK) ON oo.OBJECT_ID = a.referenced_major_id
LEFT OUTER JOIN Util.dbo.SystemObjectTypes so ON so.Type = o.type COLLATE SQL_Latin1_General_CP1_CI_AS
LEFT OUTER JOIN Util.dbo.SystemObjectTypes soo ON soo.Type = oo.type COLLATE SQL_Latin1_General_CP1_CI_AS
LEFT OUTER JOIN sys.schemas ss (NOLOCK) ON ss.SCHEMA_ID = oo.SCHEMA_ID
LEFT OUTER JOIN sys.columns cc (NOLOCK) ON cc.OBJECT_ID = oo.OBJECT_ID
AND cc.column_id = a.referenced_minor_id