如果我有一个随机查询,并希望从此查询中返回列名:
SELECT 1 ONE, 2 TWO, 'THREE' THREE
如何返回列名?甚至可能是列数据类型。
我可以在c#中执行此操作,但我正在寻找一种纯粹在Sql内部执行此操作的方法。
这是可能的,如果是这样的话?
我是否必须创建临时表,然后检查信息架构表?或者我可以用另一种方式做到吗?
答案 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
。