日期:2014-05-19  浏览次数:20549 次

求一条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, ' ')