类别:

系统函数 (系统控制)

SYSTEM$USER_TASK_CANCEL_ONGOING_EXECUTIONS

中止系统已开始处理的指定任务的运行(即 TASK_HISTORY 输出中具有 EXECUTING 状态的运行)。

语法

SYSTEM$USER_TASK_CANCEL_ONGOING_EXECUTIONS( '<task_name>' )
Copy

实参

task_name

任务的名称。

使用说明

  • 只有任务所有者(即对任务具有 OWNERSHIP 权限的角色) 对任务具有 OPERATE 权限的角色才能调用此函数。

  • task_name 是一个字符串,因此必须放在单引号内:

    • 请注意,整个名称必须放在单引号内,包括数据库和架构(如果名称是完全限定名称),即 '<db>.<schema>.<task_name>'

    • 如果任务名称区分大小写或包含任何特殊字符或空格,则需要使用双引号来处理大小写/字符。双引号必须放在单引号内,即 '"<task_name>"'

  • 此函数在指定任务的当前运行被实际取消之前返回成功消息。

  • 如果指定任务的当前运行几乎完成,则此函数可能不会取消运行。

  • 此函数仅取消指定任务的当前运行。包含此任务的 任务图 中的其他任务也可能正在运行。若要取消这些运行,必须调用此函数并单独指定每个附加子任务的名称。

    若要检查任务运行是否已取消或完成,或者当前是否有任何子任务正在运行,请查询 TASK_HISTORY 函数。

  • 为了防止任务再次运行,我们建议首先暂停该任务(使用 ALTER TASK ... SUSPEND),然后执行此函数。

    请注意,如果在执行此函数时任务:emph:`未`挂起,则 Snowflake 云服务目前需要几分钟才能再次开始计划此任务的执行。

示例

中止名称不区分大小写的任务的当前运行:

SELECT SYSTEM$USER_TASK_CANCEL_ONGOING_EXECUTIONS('mydb.myschema.mytask');
Copy

中止名称区分大小写的任务的当前运行:

SELECT SYSTEM$USER_TASK_CANCEL_ONGOING_EXECUTIONS('mydb.myschema."myTask"');
Copy
语言: 中文