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;
ENDSnowflake 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.
Related EWIs
MSCINF0028: LABELED STATEMENT IS NOT SUPPORTED IN SNOWFLAKE SCRIPTING
Last updated
Was this helpful?