0

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

1 回答 1

0

您可以使用 syscolumns 的 colorder 字段。请参见下面的示例:

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
于 2013-06-20T07:39:08.583 回答