- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ストアド内でカラム名一覧を取得)
ストアド内でカラム名一覧を取得する方法
このQ&Aのポイント
- SQL Server 2000を使用してストアド内のテーブルのカラム名一覧を取得し、カンマで繋げてひとつの変数に格納する方法について質問します。
- 現在開発でストアドを使用しており、テーブルのカラム名を取得し、カンマで繋げてひとつの変数に格納したいです。
- カラム一覧を取得するためにカーソルとFETCHを使用しようと考えていますが、変数を使用する方法がわかりません。どのように書けばよいでしょうか。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>「'対象テーブル名'」には変数がいれられないので、どうしようかと悩んでいます。 declare @tblname varchar(100) set @tblname = '対象テーブル名' DECLARE CURS_test CURSOR FOR SELECT name FROM dbo.syscolumns WHERE id IN (SELECT id FROM dbo.sysobjects WHERE name = @tblname) ORDER BY id, colid; >カラム名をカンマで繋げてひとつの変数に格納する方法がわかりませんでした。 declare @colnm varchar(100) declare @colnmconcat varchar(100) set @colnmconcat = '' fetch next CURS_test into @colnm While @@fetch_status = 0 begin if @colnmconcat = '' begin set @colnmconcat = @colnm end else begin set @colnmconcat = @colnmconcat + ',' + @colnm end fetch next CURS_test into @colnm end こういった感じでどうでしょう?(未検証ですが。)
お礼
> >「'対象テーブル名'」には変数がいれられないので、どうしようかと悩んでいます。 > declare @tblname varchar(100) > > set @tblname = '対象テーブル名' カーソルでは変数は使用できないと思い込んでいました。 無事完了いたしました。 ありがとうございました。