1

カーソルを使用して動的に結果セットを生成しようとしています。以下はコードです

        DECLARE           @ MilestoneName VARCHAR(100),
        @MilestoneSts  VARCHAR(100),
        @ProjectPre    VARCHAR(10),
        @ProjectID     VARCHAR(10),
        @Center        VARCHAR(20),
        @CenterPre     VARCHAR(20),
        @Source        VARCHAR(20),
        @Actual        INT;

SET @MilestoneName = null;
SET @MilestoneSts = null;
SET @ProjectPre = null;
SET @CenterPre  = null;

DECLARE s_cursor CURSOR FOR
SELECT ProjectID, Center, Source, Actual
FROM #MILESTONE


OPEN s_cursor
FETCH NEXT FROM s_cursor INTO @ProjectID, @Center, @Source, @Actual

WHILE @@FETCH_STATUS = 0
BEGIN

  SELECT @@FETCH_STATUS sts, @ProjectID PID, @Center Center, @Source Source, @Actual Actual 
  FETCH NEXT FROM s_cursor INTO @ProjectID, @Center, @Source, @Actual
END

CLOSE s_cursor
DEALLOCATE s_cursor  

ただし、それを使用して、単一行の79の結果を生成できますが、これらすべての行を1つの結果に結合したい..可能な解決策は高く評価されます..

4

1 に答える 1

0

確認しただけですが、なぜこれにカーソルを使用しているのですか?

このsprocは、次のように置き換えることができます

SELECT ProjectID, Center, Source, Actual
FROM #MILESTONE

しかし、多分私はここで何かを逃していますか?

コードで省略したロジックがある場合は、次の投稿を参照してください:マルチステートメント テーブル値関数とインライン テーブル値関数

GJ

于 2011-02-25T15:38:35.357 に答える