DECLARE @CustId INT DECLARE @CustName VARCHAR( 30 ) DECLARE CustCursor CURSOR FOR SELECT CustId, Name FROM Customer ORDER BY CustId FOR READ ONLY OPEN CustCursor WHILE (0 = 0) BEGIN FETCH NEXT FROM CustCursor INTO @CustId, @CustName IF ( @@FETCH_STATUS <> 0 ) BREAK PRINT CAST ( @CustId AS VARCHAR(IO) ) + ' ' + @CustName ENDCLOSE CustCursor DEALLOCATE CustCursor
Данный сценарий выполняет действия:
(Отметьте один правильный вариант ответа.)
Варианты ответа
объявляются две переменные(@CustId и @CustName), при выполнении инструкции DECLARE CURSOR СОЗДАЕТСЯ результирующий набор строк инструкции SELECT. При первом выполнении инструкции FETCH NEXT считывает первую строку результирующей таблицы курсора и помещает значения ее столбцов в НОВЫЙ НАБОР СТРОК. Далее, выполняясь в цикле, инструкция FETCH NEXT считывает очередные строки результирующей таблицы и помещает их данные в ТОТ ЖЕ НАБОР СТРОК до тех пор, пока таблица не будет прочитана до конца
объявляются две переменные(@CustId и @CustName), при выполнении инструкции DECLARE CURSOR результирующий набор строк инструкции SELECT НЕ создается. Он создается при выполнении инструкции OPEN. При первом выполнении инструкции FETCH NEXT считывает первую строку результирующей таблицы курсора и помещает значения ее столбцов в переменные, заданные в предложении INTO. Далее, выполняясь в цикле, инструкция FETCH NEXT считывает очередные строки результирующей таблицы и помещает их данные в те же переменные до тех пор, пока таблица не будет прочитана до конца(Верный ответ)
объявляются две переменные(@CustId и @CustName), при выполнении инструкции DECLARE CURSOR СОЗДАЕТСЯ результирующий набор строк инструкции SELECT. При первом выполнении инструкции FETCH NEXT считывает первую строку результирующей таблицы курсора и помещает значения ее столбцов в переменные, заданные в предложении INTO. Далее, выполняясь в цикле, инструкция FETCH NEXT считывает очередные строки результирующей таблицы и помещает их данные в те же переменные до тех пор, пока таблица не будет прочитана до конца