如何在sql中查找不同数据库的存储过程中使用的表和视图?

如何在sql中查找不同数据库的存储过程中使用的表和视图?,sql,sql-server-2008,stored-procedures,Sql,Sql Server 2008,Stored Procedures,我需要找到存储过程中使用的表和视图,其中的表和视图可能属于不同的数据库 有没有办法找到 如果我有sp“dbo.a” 我必须找到在这个应用程序中使用的表和视图 表和视图可能来自不同的数据库。要做到这一点,可能没有简单的方法。您需要做的是在数据库中找到包含所有存储过程代码的表,或者以其他方式读取它们 然后,您需要为数据库编写一个SQL解析器。然后,解析器可以读取存储过程的源代码并生成一些数据结构(通常是an),您可以遍历这些数据结构来查找它引用的所有表 SELECT * FROM sys.d

我需要找到存储过程中使用的表和视图,其中的表和视图可能属于不同的数据库

有没有办法找到

如果我有sp“dbo.a”

我必须找到在这个应用程序中使用的表和视图

表和视图可能来自不同的数据库。

要做到这一点,可能没有简单的方法。您需要做的是在数据库中找到包含所有存储过程代码的表,或者以其他方式读取它们

然后,您需要为数据库编写一个SQL解析器。然后,解析器可以读取存储过程的源代码并生成一些数据结构(通常是an),您可以遍历这些数据结构来查找它引用的所有表

SELECT  *
FROM    sys.dm_sql_referenced_entities(N'dbo.YourProcedure', N'OBJECT');