SQL Server 查看对象之间的引用关系

前期准备:

           use studioA;
           go

           create table T(X int,Y int);

           insert into T(X,Y) values(1,1),(2,2);
           go

           -------------------------------------

           use StudioB;
           go

           create procedure proc_for_B
           as
           begin
                 select * from StudioA.dbo.T;
           end
           go

------------------------------------------------------------------------------------------------------------------------------------

方法 1、

         对象之间的引用关系、都是定义在SQL 语句中的、比如proc_A要查看tableA表,那么在proc_A的代码中就引用了tableA表;

         也就是说、我们可以从sys.sql_expression_dependencis;这个视图中查看。

         select referenced_entity_name as [被引用的对象名],object_name(referencing_id)[主动对象]
         from sys.sql_expression_dependencies ped;
         go

         

方法 2、

         SQL Server 对于对象间的引用关系,也是专门有记录的。我们可以通过 

         sys.dm_sql_referenced_entities、

         sys.dm_sql_referencing_entities来查看

         

         select * from sys.dm_sql_referenced_entities( 'dbo.proc_for_B','object');
         go

         

原文地址:https://www.cnblogs.com/JiangLe/p/4025908.html