2016-03-28 76 views
4

如果我有一個隨機查詢,並希望從該查詢返回的列名:獲取從動態查詢選擇列名在SQL Server

SELECT 1 ONE, 2 TWO, 'THREE' THREE 

我怎樣才能返回列的名字呢?甚至可能是列數據類型。

我可以在c#中做到這一點,但我正在尋找一種方法來完成這一切純粹是在Ms Sql中。

這是可能的,如果是這樣怎麼樣?

我需要創建一個臨時表,然後檢查信息模式表嗎?或者我能以另一種方式做到嗎?

+0

即時通訊如何在舊的SQL版本中做到這一點 – Sherlock

+0

@Katana我在我的答案中增加了一行,可能有所幫助。 – DavidG

+0

@DavidG感謝我的額外知識,我之前在遇到實體框架與我的SP之間的通信問題時添加了FMTONLY – Sherlock

回答

5

您可以使用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