0

4 から 31 までのカウントがあります。このカウントは、テーブル内の列の数です。カウントに関して列名を知りたいです。ループを適用したため、列数が変化します。例:私の列はF3、F4、..... F31です。私のカウントは 4 から始まります。この時点で私の列は F3 です。列名の名前を取得するにはどうすればよいですか。次に count が 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 に答える