从列数中获取列名称

时间:2013-06-20 07:25:01

标签: sql-server

我有一个从4到31的计数。这个计数是表中的列。我想知道关于计数的列名。我的列计数将随着我应用循环而改变。 例如:我的列是F3,F4,..... F31。 我的计数从4开始,此时我的列是F3。如何获取列名称的名称。下次当计数变为4时,指针将向前移动到列F4。此时我希望列名为F4。我怎样才能做到这一点。以下是一个不为我计算列数的代码。

declare @col_Count int
set @col_Count = (select count(*) NoOfColumns from SYSCOLUMNS
WHERE id= (Select id from SYSOBJECTS where name = 'TEMP_STOCK_uPDATE'))
select syscolumns from dbo.TEMP_STOCK_uPDATE 

1 个答案:

答案 0 :(得分:0)

您可以使用syscolumns的着色器字段。见下面的例子:

declare @colindex int
declare @colcount int
declare @tableid int
declare @colname varchar(100)

set @tableid = ( select id from sysobjects where name='name-of-table' )
set @colcount = ( select COUNT(*) from syscolumns where id = @tableid )

set @colindex = 1
while @colindex <= @colcount 
begin
  set @colname = ( select name from syscolumns where id = @tableid and colorder = @colindex )
  print @colname
  set @colindex = @colindex + 1
end