BEGIN ...END (Snowflake Scripting)

BEGINEND 定义 Snowflake Scripting 块。

有关块的更多信息,请参阅 了解 Snowflake Scripting 中的块

语法

BEGIN
    <statement>;
    [ <statement>; ... ]
[ EXCEPTION <exception_handler> ]
END;
Copy

其中:

statement

语句可以是以下任一语句:

exception_handler

指定应如何处理异常。请参阅 处理异常EXCEPTION (Snowflake Scripting)

使用说明

  • 关键字 END 后面必须紧跟一个分号,或者紧跟一个紧跟分号的标签。

  • 关键字 BEGIN 后面 不能 紧跟分号。

  • BEGINEND 通常用在另一种语言结构中,如循环或分支结构中,或者用在存储过程中。但是,这不是必需的。BEGIN/END 块可以是匿名块内的顶层结构。

  • 块可以嵌套。

示例

这是使用 BEGINEND 对相关语句进行分组的简单示例。此示例创建两个相关表。

EXECUTE IMMEDIATE $$
BEGIN
    CREATE TABLE parent (ID INTEGER);
    CREATE TABLE child (ID INTEGER, parent_ID INTEGER);
    RETURN 'Completed';
END;
$$
;
Copy

下一个示例与此类似;这些语句被分组到一个块中,并且也位于该块内的事务中:

EXECUTE IMMEDIATE $$
BEGIN
    BEGIN TRANSACTION;
    TRUNCATE TABLE child;
    TRUNCATE TABLE parent;
    COMMIT;
    RETURN '';
END;
$$
;
Copy

在此示例中,语句位于 分支 结构中。

IF (both_rows_are_valid) THEN
    BEGIN
        BEGIN TRANSACTION;
        INSERT INTO parent ...;
        INSERT INTO child ...;
        COMMIT;
    END;
END IF;
Copy
语言: 中文