如何获取 SQL Server 中存储过程返回的列列表?

Muh*_*mad 2 t-sql sql-server stored-procedures

在 SQL Server 中,如何查询系统表以返回存储过程的所有列名?对于视图,我知道我可以使用sp_columnssys.columns。但是当我对我的存储过程使用它们时,它返回了 0 行。

我尝试了以下方法:

EXEC sp_columns MyStoredProc;
Run Code Online (Sandbox Code Playgroud)

和:

SELECT * 
FROM sys.columns 
WHERE [object_id] = OBJECT_ID('MyStoredProc');
Run Code Online (Sandbox Code Playgroud)

两者都没有返回。

提前致谢

Eri*_*ric 5

如果您要求使用 SQL 2012 或更高版本,则可以使用

exec sp_describe_first_result_set N'your-stored-procedure-name'
Run Code Online (Sandbox Code Playgroud)

注意:这将返回存储过程返回的第一个结果集

MSDN

  • 如果您的存储过程中有临时表,这将不起作用 (4认同)