Операторы выбора объединения в цикле while T-SQL - PullRequest
0 голосов
/ 25 февраля 2011

Я пытаюсь использовать курсоры для динамического создания набора результатов. следующий код

        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 Ответ

0 голосов
/ 25 февраля 2011

просто проверяю, почему вы используете курсор для этого?

Этот sproc можно заменить, просто сказав

SELECT ProjectID, Center, Source, Actual
FROM #MILESTONE

Но, может быть, я что-то упускаю здесь?

Если в вашем коде отсутствует логика, посмотрите на этот пост: Функция таблицы с несколькими операторами и функция с таблицами

GJ

...