通过 T-SQL 获取结果集的列名

Getting a Result Set's Column Names via T-SQL

有没有办法只使用适用于 2012 年之前版本的 T-SQL 来获取 任意查询 将 return 的列名Microsoft SQL 服务器?

什么不起作用:

有什么想法吗?

只要任意查询有资格用作嵌套查询(即没有 CTE、唯一列名等),就可以通过将查询的元数据加载到临时文件中来实现 table,然后通过 sys.tables:

检索列详细信息
SELECT TOP 0 * INTO #t FROM (query goes here) q
SELECT name FROM tempdb.sys.columns WHERE object_id = OBJECT_ID('tempdb..#t')
DROP TABLE #t

感谢@MartinSmith 推荐这种方法!