- 类别:
系统函数 (系统控制)
SYSTEM$USER_TASK_CANCEL_ONGOING_EXECUTIONS¶
中止系统已开始处理的指定任务的运行(即 TASK_HISTORY 输出中具有 EXECUTING 状态的运行)。
语法¶
SYSTEM$USER_TASK_CANCEL_ONGOING_EXECUTIONS( '<task_name>' )
实参¶
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');
中止名称区分大小写的任务的当前运行:
SELECT SYSTEM$USER_TASK_CANCEL_ONGOING_EXECUTIONS('mydb.myschema."myTask"');