0

列が別のテーブル B の行数に依存する一時テーブル A を作成するストアド プロシージャを作成しようとしています。これの背景は、ユーザーが独自の「グループ」を作成できるようにすることです。 、グループに関する情報はテーブル B に格納されます。テーブル A を作成すると、テーブル B の行数が調べられ、テーブル B に各グループの列が作成されます (テーブル B のグループの名前を次のように使用します)。テーブル A の列名)。行はシステム内の各ユーザーのエントリであり、これも可変であるため、軸 (軸?) を反転できません。

要約すると、可変数の列を持つ一時テーブルを作成する手順を作成するにはどうすればよいですか?

ありがとうございました。

4

2 に答える 2

3
DECLARE @sSQL varchar(max),
  @ColumnName CHAR(128)

DECLARE TableCursor CURSOR FOR
  SELECT ColumnName FROM GroupTable

SET @sSQL = 'CREATE TABLE ##NewTempTable ('

OPEN TableCursor

FETCH NEXT FROM TableCursor INTO @ColumnName

WHILE @@FETCH_STATUS = 0
BEGIN 

SET @sSQL = @sSQL + RTRIM(@ColumnName) + ' CHAR(10) ,'

FETCH NEXT FROM TableCursor INTO @ColumnName

END

CLOSE TableCursor

DEALLOCATE TableCursor

SET @sSQL = @sSQL + ')'

EXEC (@sSQL)

SELECT * FROM ##NewTempTable

これが役立つことを願っています。DECLARE CURSOR では、"ColumnName" と "TableName" をクエリしている実際の列/テーブルに変更する必要があります。

于 2013-08-29T21:15:30.180 に答える
0

これを行うべきではありません。代わりに、グループ名をテーブル A の列にもします。

于 2013-08-29T18:28:01.783 に答える