SQL Server перейти на следующую строку, откуда пришел курсор - PullRequest
0 голосов
/ 12 января 2019

Мне нужно вернуться с линии, с которой был отправлен курсор, с помощью goto. Цель состоит в том, чтобы несколько раз использовать результат печати части из хранимой процедуры

declare @a int, @b int

set @a = 1
set @b = 1

nextb:
    goto printresult
    set @b = @b + 1
    if @b < 10 goto nextb

lessb:
    goto printresult
    set @b = @b - 1
    if @b > 1 goto nextb
    goto finish

printresult:    
    select @a, @b 
    --goto ? need to go back the next line where the cursor was sent from

finish:
    select 'finish'

1 Ответ

0 голосов
/ 13 января 2019

, если я понимаю, что вы ищете для соответствующего кода, может помочь вам:

/*** Effacement: ********************************************************
IF EXISTS ( SELECT name FROM sysobjects
            WHERE type = 'V' AND name = 'procPrintresult' )
    DROP PROCEDURE procPrintresult
*** Effacement: ********************************************************/

CREATE PROCEDURE procPrintresult 
    @a int, @b int
AS
SET NOCOUNT ON
    SELECT  @a AS 'A', @b AS 'B'

SET NOCOUNT OFF
GO


/*** Effacement: ********************************************************
IF EXISTS ( SELECT name FROM sysobjects
            WHERE type = 'V' AND name = 'procExecutionCodeWanted' )
    DROP PROCEDURE procExecutionCodeWanted
*** Effacement: ********************************************************/

CREATE PROCEDURE procExecutionCodeWanted 
AS
SET NOCOUNT ON
    DECLARE @a int = 1
    DECLARE @b int = 1

    -- nextb block
    while @b < 10 
    begin
        exec procPrintresult @a, @b
        SET @b = @b +1
    end


    -- lessb block
    while @b > 1
    begin 
        exec procPrintresult @a, @b
        SET @b = @b - 1
    end

    -- finish storedProc
    SELECT  'finish' AS 'Finish'

SET NOCOUNT OFF 
GO


EXEC procExecutionCodeWanted
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...