一般前台工具都有简单的函数来取。
---------------------------------------------------------------
如果你用的是VB的话,并且用记录集的方式调用,可以
rst.Fields.Count为列数
rst为记录集
---------------------------------------------------------------
declare @s varchar(1000)
set @s = 'select * from a1'
exec ('select * into __tdns from ('+@s+') as A')
select B.name from sysobjects A left join syscolumns B
on A.id = B.id where A.name = '__tdns'
drop table __tdns