LABEL and GOTO

Translation reference to convert LABEL AND GOTO in SQL Server

Description

Snowflake SQL does not support GOTO LABEL statements. Currently, LABELS are commented and warning is added for all the occurrences.

Sample Source Patterns

The following examples details the BEGIN and COMMIT transaction statements.

SQL Server

CREATE PROCEDURE GoToProcedure
AS
BEGIN
DECLARE @TotalMaarks INT
SET @TotalMaarks = 49;
IF @TotalMaarks >= 50
    GOTO Pass
IF @TotalMaarks < 50
    GOTO Fail
Pass:
    SELECT 1;
    RETURN 1;
Fail:
    SELECT 2;
    RETURN 2;
END

Snowflake SQL

CREATE OR REPLACE PROCEDURE PUBLIC.GoToProcedure ()
RETURNS VARCHAR
LANGUAGE SQL
EXECUTE AS CALLER
AS
$$
  DECLARE
    TOTALMAARKS INT;
  BEGIN
     
    TOTALMAARKS := 49;
    IF (TOTALMAARKS >= 50) THEN
-- ** MSC-ERROR - MSCEWI1037 - TRANSLATION FOR GOTO IS PLANNED TO BE DELIVERED IN THE FUTURE **
--      GOTO Pass
    END IF;
    IF (TOTALMAARKS < 50) THEN
-- ** MSC-ERROR - MSCEWI1037 - TRANSLATION FOR GOTO IS PLANNED TO BE DELIVERED IN THE FUTURE **
--      GOTO Fail
    END IF;
-- ** MSC-INFORMATION - MSCINF0028 - LABELED STATEMENT IS NOT SUPPORTED IN SNOWFLAKE SCRIPTING **
--    Pass:
    SELECT 1;
    RETURN 1;

-- ** MSC-INFORMATION - MSCINF0028 - LABELED STATEMENT IS NOT SUPPORTED IN SNOWFLAKE SCRIPTING **
--    Fail:
    SELECT 2;
    RETURN 2;

  END;
$$;

LABEL and GOTO statement outside routines (functions and procedures)

SQL Server

CREATE TABLE T12(COL1 INT);
GOTO SecondStat
FirstStat:
    INSERT INTO T12 VALUES (1);
SecondStat:
    INSERT INTO T12 VALUES (2);

Snowflake Scripting

BEGIN
    CREATE OR REPLACE TABLE T12 (
        COL1 INT
    );
--        --** MSC-ERROR - MSCEWI1073 - PENDING FUNCTIONAL EQUIVALENCE REVIEW FOR 'Goto' NODE **
--        GOTO SecondStat
--        --** MSC-WARNING - MSCEWI4045 - LABELED STATEMENT IS NOT SUPPORTED IN SNOWFLAKE SCRIPTING **
--        FirstStat:
    INSERT INTO T12 VALUES (1);

--        --** MSC-WARNING - MSCEWI4045 - LABELED STATEMENT IS NOT SUPPORTED IN SNOWFLAKE SCRIPTING **
--        SecondStat:
    INSERT INTO T12 VALUES (2);

END;

Known Issues

No issues were found.

Last updated