Sql server 从SQL Server中的动态查询中获取选择列名

Sql server 从SQL Server中的动态查询中获取选择列名,sql-server,sql-server-2012,Sql Server,Sql Server 2012,如果我有一个随机查询,并希望从此查询返回列名: SELECT 1 ONE, 2 TWO, 'THREE' THREE 如何返回列名?甚至可能是列数据类型 我可以在c中完成这项工作,但我正在寻找一种完全在Ms Sql中完成这项工作的方法 这可能吗?如果可能,怎么可能 我是否必须创建一个临时表,然后检查info模式表?或者我可以用另一种方法吗?您可以用它来描述从任意SQL语句返回的列。例如: EXEC sp_describe_first_result_set @tsql = 'SELECT 1 O

如果我有一个随机查询,并希望从此查询返回列名:

SELECT 1 ONE, 2 TWO, 'THREE' THREE
如何返回列名?甚至可能是列数据类型

我可以在c中完成这项工作,但我正在寻找一种完全在Ms Sql中完成这项工作的方法

这可能吗?如果可能,怎么可能

我是否必须创建一个临时表,然后检查info模式表?或者我可以用另一种方法吗?

您可以用它来描述从任意SQL语句返回的列。例如:

EXEC sp_describe_first_result_set @tsql = 'SELECT 1 ONE, 2 TWO, ''THREE'' THREE'
你会得到这样的结果


对于较旧版本的SQL Server,您还可以查看。

我对如何在旧SQL中执行此操作感兴趣versions@Katana我在回答中添加了一行可能会有所帮助的内容。@DavidG感谢您为我提供的额外知识,我以前在遇到实体框架和我的SP之间的通信问题时添加了这行内容