如何识别查询/存储过程中使用的所有表

时间:2019-09-27 17:44:19

标签: sql

我正在寻找一个SQL查询,该查询可以查看任何查询或存储过程并返回所有正在使用的数据库,模式,表和列。

例如,假设我有此查询:

SELECT
    Product.ID, Product.Name, Sales.Price
FROM
    Database1.dbo.Product
LEFT JOIN 
    Database2.dbo.Sales ON Product.ID = Sales.ProductID

理想情况下,我正在寻找一个查询,可以查询上述查询并返回:

    Database1列中
  • Database2Databases
  • dboSchema列中
  • Product列中
  • SalesTable
  • ID列中
  • NamePriceProductIDColumns

1 个答案:

答案 0 :(得分:0)

如果为查询创建视图或存储过程,则sys.dm_sql_referenced_entities将列出对其他数据库对象的依赖关系。

此外,您可以查看查询的执行计划,然后对输出进行后处理以接近所需的内容。 http://msdn.microsoft.com/en-us/library/ms187735(v=sql.105).aspx是SHOWPLAN_ALL T-SQL命令的起点