Ben Gribaudo
Ben Gribaudo

Reputation: 5147

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

Is there a way to get the column names that an arbitrary query will return using just T-SQL that works with pre-2012 versions of Microsoft SQL Server?

What Doesn't Work:

Any ideas?

Upvotes: 2

Views: 1440

Answers (1)

Ben Gribaudo
Ben Gribaudo

Reputation: 5147

So long as the arbitrary query qualifies to be used as a nested query (i.e. no CTEs, unique column names, etc.), this can be achieved by loading the query's metadata into a temp table, then retrieving column details via 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

Thanks to @MartinSmith's for suggesting this approach!

Upvotes: 4

Related Questions