1
+
2
+ SELECT DISTINCT
3
+ referenced_database_name = db_name ()
4
+ , referencing_entity_name = s_ing .name + ' .' + OBJECT_NAME (referencing_id)
5
+ , referencing_type_desc = o_ing .type_desc + CASE WHEN cc .is_persisted = 1 THEN ' PERSISTED' ELSE ' ' END + CASE WHEN cc .column_id is not null THEN ' COMPUTED COLUMN' ELSE ' ' END
6
+ , referencing_minor_object = case WHEN REFERENCING_CLASS_DESC = ' OBJECT_OR_COLUMN' THEN COALESCE (COL_NAME (referencing_id, referencing_minor_id), ' (n/a)' )
7
+ WHEN REFERENCING_CLASS_DESC = ' INDEX' THEN i .name
8
+ ELSE ' (n/a)'
9
+ END
10
+ , referencing_class_desc = CASE WHEN referencing_class_desc = ' INDEX' and i .has_filter = 1 THEN ' FILTERED INDEX' ELSE referenced_class_desc END
11
+ , referenced_class_desc
12
+ , referenced_server_name = isnull (referenced_server_name, @@SERVERNAME )
13
+ , referenced_database_name = isnull (referenced_database_name, db_name ())
14
+ -- , referenced_schema_name = isnull(referenced_schema_name, 'dbo')
15
+ , referenced_entity_name = ISNULL (s_ed .name + ' .' ,' ' ) + referenced_entity_name
16
+ , referenced_type_desc = ISNULL (o_ed .type_desc , CASE WHEN sed .is_ambiguous = 1 THEN ' reference is ambiguous, resolved at runtime' ELSE ' remote object type not available' END )
17
+ , referenced_column_name = COALESCE (COL_NAME (referenced_id, referenced_minor_id), ' (n/a)' )
18
+ -- , is_caller_dependent, is_ambiguous
19
+ ,*
20
+ FROM sys .sql_expression_dependencies AS sed
21
+ INNER JOIN sys .objects AS o_ing ON sed .referencing_id = o_ing .object_id
22
+ LEFT OUTER JOIN sys .objects AS o_ed ON sed .referenced_id = o_ed .object_id
23
+ LEFT OUTER JOIN Sys .computed_columns AS cc on cc .object_id = o_ing .object_id and cc .column_id = sed .referencing_minor_id
24
+ INNER JOIN sys .schemas s_ing on s_ing .schema_id = o_ing .schema_id
25
+ LEFT OUTER JOIN sys .schemas s_ed on s_ed .schema_id = o_ed .schema_id
26
+ LEFT OUTER JOIN sys .indexes i on i .index_id = sed .referencing_minor_id and sed .referencing_class_desc = ' INDEX' and i .object_id = o_ing .object_id
27
+ -- where s_ing.name + '.' + OBJECT_NAME(referencing_id) = 'dbo.SH_MSRS_REPORTTITLE'
28
+ order by sed .referenced_entity_name , referencing_entity_name
29
+ GO
30
+ -- reference: https://docs.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-sql-expression-dependencies-transact-sql?view=sql-server-ver15
31
+ -- inspired by https://docs.microsoft.com/en-us/sql/relational-databases/stored-procedures/view-the-dependencies-of-a-stored-procedure?view=sql-server-ver15
32
+
33
+
0 commit comments