• I vaguely recalled something about SQL Server 2012 adding some additional system stored procedures that return a resultset describing metadata that would be returned from a specified batch of T-SQL, which could be a stored procedure.

    sp_describe_first_result_set

    http://technet.microsoft.com/en-us/library/ff878602.aspx

    For example:

    exec sp_describe_first_result_set @tsql = N'sp_who';

    However, it can be tripped up by dynamic sql. If you try it with sp_who2, it will return this:

    Msg 11526, Level 16, State 1, Procedure sp_describe_first_result_set, Line 1

    The metadata could not be determined because statement 'delete #tb1_sysprocesses

    where lower(status) = 'sleeping'

    and upper(cmd)' in procedure 'sp_who2' uses a temp table.

    Also in 2012 the EXEC command has a new WITH RESULT SETS clause that can be used to alias column names returned from a stored procedure.

    "Do not seek to follow in the footsteps of the wise. Instead, seek what they sought." - Matsuo Basho