列出 SQL Server 2008 中存储过程的列

List columns from a stored procedure in SQL Server 2008

有谁知道在 SQL Server 2008 中是否有函数 sys.dm_exec_describe_first_result_set_for_object 的替代方法来从存储过程中检索列列表。

功能sys.dm_exec_describe_first_result_set_for_object只能在SQL Server 2012之后使用,但我需要向SQL Server 2008投诉。

我已经研究了依赖关系模式,但它并没有带来完全相同的列,因为依赖关系与表相关联。它没有解决我的问题。

OPENQUERY 在我的生产环境中也不是替代方案(出于安全原因)。

旧方法是 FMTONLY processing

例如

set fmtonly on
exec SomeProc
set fmtonly off

这将为存储过程中 return 产生的每个静态 SQL 查询 return 一个空结果集。并且实际上不执行任何数据访问或 运行 任何 DML 语句。