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

时间:2016-03-28 03:22:11

标签: sql-server sql-server-2012

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

SELECT 1 ONE, 2 TWO, 'THREE' THREE

如何返回列名?甚至可能是列数据类型。

我可以在c#中执行此操作,但我正在寻找一种纯粹在Sql内部执行此操作的方法。

这是可能的,如果是这样的话?

我是否必须创建临时表,然后检查信息架构表?或者我可以用另一种方式做到吗?

1 个答案:

答案 0 :(得分:6)

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

EXEC sp_describe_first_result_set @tsql = 'SELECT 1 ONE, 2 TWO, ''THREE'' THREE'

您将获得此类fiddle的结果。

对于旧版本的SQL Server,您还可以查看SET FMTONLY ON