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

时间:2023-03-08 19:26:48

前期准备:

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

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

方法 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

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