列出 SQL 服务器中的所有对象和列

List all objects and columns in SQL Server

我需要列出对象内的所有对象以及它们 return 来自源 table 的相关列。

例如

过程 usp_UspTask 正在调用 3 个函数

  1. fnt_Task1
  2. fnt_Task2
  3. fnt_Task3

这三个函数是相邻的并且returning select列表到usp_UspTask

现在我想要在所有上述三个函数中使用的 tables 和列的列表。

有什么查询可以return这个信息吗?我了解信息架构,但需要相关信息。

对于 SQL Server 2008,您可以使用 sp_depends returns 此对象依赖的所有对象以及依赖此对象的所有对象:

EXEC SP_DEPENDS fnt_Task1

这returns两个数据集:

  1. 包含依赖对象的数据集:对象名称、类型 (table/view),更新,选中,列
  2. 包含依赖于此对象的对象的数据集:名称和类型

注意 sp_depends 已弃用,对于 2012 年及以后的版本,您应该使用:

  • sys.dm_sql_referencing_entities 和
  • sys.dm_sql_referenced_entities