База ответов ИНТУИТ

Программирование в Microsoft SQL Server 2000

<<- Назад к вопросам

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 НЕ создается. Он создается при выполнении инструкции OPEN. При первом выполнении инструкции FETCH NEXT считывает первую строку результирующей таблицы курсора и помещает значения ее столбцов в переменные, заданные в предложении INTO. Далее, выполняясь в цикле, инструкция FETCH NEXT считывает очередные строки результирующей таблицы и помещает их данные в те же переменные до тех пор, пока таблица не будет прочитана до конца(Верный ответ)
объявляются две переменные(@CustId и @CustName), при выполнении инструкции DECLARE CURSOR СОЗДАЕТСЯ результирующий набор строк инструкции SELECT. При первом выполнении инструкции FETCH NEXT считывает первую строку результирующей таблицы курсора и помещает значения ее столбцов в переменные, заданные в предложении INTO. Далее, выполняясь в цикле, инструкция FETCH NEXT считывает очередные строки результирующей таблицы и помещает их данные в те же переменные до тех пор, пока таблица не будет прочитана до конца
объявляются две переменные(@CustId и @CustName), при выполнении инструкции DECLARE CURSOR СОЗДАЕТСЯ результирующий набор строк инструкции SELECT. При первом выполнении инструкции FETCH NEXT считывает первую строку результирующей таблицы курсора и помещает значения ее столбцов в НОВЫЙ НАБОР СТРОК. Далее, выполняясь в цикле, инструкция FETCH NEXT считывает очередные строки результирующей таблицы и помещает их данные в ТОТ ЖЕ НАБОР СТРОК до тех пор, пока таблица не будет прочитана до конца
Похожие вопросы
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
Данный сценарий выполняет действия:
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(10) ) + ' ' + @CustName ENDCLOSE CustCursor DEALLOCATE CustCursor
Данный сценарий выполняет действия:
CREATE FUNCTION CustWithDiscount   ( @MinDiscount DEC( 5, 3 ) )   RETURNS @CustWithDiscountTable TABLE (     ( CustID INT NOT NULL,      CustName CHAR( 30 ) NOT NULL,       CustDisc DEC( 5, 3 ) NULL,       PRIMARY KEY( CustID ) ) BEGIN  INSERT INTO @CustWithDiscountTable    SELECT CustId, Name, CAST( Discount AS VARCHAR( 7 ) )    FROM Customer    WHERE Discount >= @MinDiscount   RETURNEND
Данный сценарий выполняет действия:
CREATE FUNCTION CustWithDiscount  ( @MinDiscount DEC( 5, 3 ) )   RETURNS @CustWithDiscountTable TABLE (     ( CustID INT NOT NULL,      CustName CHAR( 30 ) NOT NULL,       CustDisc DEC( 5, 3 ) NULL,       PRIMARY KEY( CustID ) ) BEGIN  INSERT INTO @CustWithDiscountTable    SELECT CustId, Name, CAST( Discount AS VARCHAR( 7 ) )    FROM Customer    WHERE Discount >= @MinDiscount   RETURNEND
Данный сценарий выполняет действия:
CREATE FUNCTION CustWithDiscount   ( @MinDiscount DEC( 5, 3 ) )   RETURNS @CustWithDiscountTable TABLE (     ( CustID INT NOT NULL,      CustName CHAR( 30 ) NOT NULL,       CustDisc DEC( 5, 3 ) NULL,       PRIMARY KEY( CustID ) ) BEGIN  INSERT INTO @CustWithDiscountTable    SELECT CustId, Name, CAST( Discount AS VARCHAR( 7 ) )    FROM Customer    WHERE Discount >= @MinDiscount   RETURNEND
Данный сценарий выполняет действия:
CREATE FUNCTION CustDiscount   ( @CustId INT )   RETURNS DEC( 5, 3 ) BEGIN  DECLARE @Discount DEC( 5, 3 )   SET @Discount =    ( SELECT Discount       FROM Customer       WHERE CustId = @CustId )   RETURN @Discount END
Данный сценарий выполняет действия:
CREATE FUNCTION CustDiscount  ( @CustId INT )   RETURNS DEC( 5, 3 )BEGIN  DECLARE @Discount DEC( 5, 3 )   SET @Discount =    ( SELECT Discount       FROM Customer       WHERE CustId = @CustId )   RETURN @Discount END
Данный сценарий выполняет действия:
CREATE FUNCTION CustDiscount   ( @CustId INT )   RETURNS DEC( 5, 3 ) BEGIN  DECLARE @Discount DEC( 5, 3 )   SET @Discount =    ( SELECT Discount       FROM Customer       WHERE CustId = @CustId )   RETURN @Discount END
Данный сценарий выполняет действия:
CREATE PROCEDURE GetCustDiscount   @CustId INT,   @Discount DEC( 5, 3 ) OUTPUTAS  SET @Discount =    ( SELECT Discount       FROM Customer       WHERE CustId = @CustId
Данный сценарий выполняет действия:
CREATE PROCEDURE GetCustDiscount   @CustId INT,   @Discount DEC( 5, 3 ) OUTPUTAS  SET @Discount =    ( SELECT Discount       FROM Customer       WHERE CustId = @CustId
Данный сценарий выполняет действия: