我有一个从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
答案 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