列出 SQL 服务器中的所有对象和列
List all objects and columns in SQL Server
我需要列出对象内的所有对象以及它们 return 来自源 table 的相关列。
例如
过程 usp_UspTask
正在调用 3 个函数
fnt_Task1
fnt_Task2
fnt_Task3
这三个函数是相邻的并且returning select列表到usp_UspTask
。
现在我想要在所有上述三个函数中使用的 tables 和列的列表。
有什么查询可以return这个信息吗?我了解信息架构,但需要相关信息。
对于 SQL Server 2008,您可以使用 sp_depends returns 此对象依赖的所有对象以及依赖此对象的所有对象:
EXEC SP_DEPENDS fnt_Task1
这returns两个数据集:
- 包含依赖对象的数据集:对象名称、类型
(table/view),更新,选中,列
- 包含依赖于此对象的对象的数据集:名称和类型
注意 sp_depends 已弃用,对于 2012 年及以后的版本,您应该使用:
- sys.dm_sql_referencing_entities 和
- sys.dm_sql_referenced_entities
我需要列出对象内的所有对象以及它们 return 来自源 table 的相关列。
例如
过程 usp_UspTask
正在调用 3 个函数
fnt_Task1
fnt_Task2
fnt_Task3
这三个函数是相邻的并且returning select列表到usp_UspTask
。
现在我想要在所有上述三个函数中使用的 tables 和列的列表。
有什么查询可以return这个信息吗?我了解信息架构,但需要相关信息。
对于 SQL Server 2008,您可以使用 sp_depends returns 此对象依赖的所有对象以及依赖此对象的所有对象:
EXEC SP_DEPENDS fnt_Task1
这returns两个数据集:
- 包含依赖对象的数据集:对象名称、类型 (table/view),更新,选中,列
- 包含依赖于此对象的对象的数据集:名称和类型
注意 sp_depends 已弃用,对于 2012 年及以后的版本,您应该使用:
- sys.dm_sql_referencing_entities 和
- sys.dm_sql_referenced_entities