求一条Sql语句,将一个表中所有字段名提出并放在一个字符串或文本中
本人想提取一个表中所有字段名,但取出字段名后总是下面这种格式
1 TA_ID
2 TA_Year
3 TA_Audited
4 TA_GrossOutput
5 TA_GrossOutputMark
6 TA_AddVal
........
想提取之后成为如下格式:
TA_ID,TA_Year,TA_Audited,TA_GrossOutput,TA_GrossOutputMark,TA_AddVal....
请问SQL语句如何写?谢谢!
------解决方案--------------------declare @s varchar(100)
set @s= ' '
select @s=@s+name+ ', ' from syscolumns where id=object_id( '表名 ')
select @s
------解决方案--------------------declare @strl varchar(8000)
set @strl= ' '
select @strl=@strl+ ', '+name from syscolumns
where id = object_id( 'tbname ') order by colid
set @strl=stuff(@strl,1,1, ' ')
------解决方案--------------------创建合并函数
create function f_str(@table varchar(10))
returns varchar(100)
as
begin
declare @str varchar(100)
set @str= ' '
select @str=@str+ ', '+[name] from syscolumns where id=object_id( ' '+@table+ ' ')
return stuff(@str,1,1, ' ')
end
调用:
select dbo.f_str( '表名 ')
------解决方案--------------------declare @a varchar(8000)
set @a= ' '
select @a =@a+ ', '+name from syscolumns where id=(select id from sysobjects where name= '表名 ')
select stuff(@a,1,1, ' ')