<budget_name>!REMOVE_RESOURCE

自定义预算 中移除对象。必须通过 引用 移除对象。

另请参阅:

<budget_name>!ADD_RESOURCE<budget_name>!GET_LINKED_RESOURCES

语法

<budget_name>!REMOVE_RESOURCE( { '<object_reference>' | <reference_statement> } )
Copy

实参

'object_reference'

解析为对象的序列化字符串表示形式。此字符串是 SYSTEM$REFERENCE 函数的输出。

reference_statement

SYSTEM$REFERENCE 语句,用于为要从预算中移除的对象创建引用。

备注

如果您想在预算中添加 Snowflake Native App,当您调用 SYSTEM$REFERENCE 时,请为 object_type 实参指定 'DATABASE'``(而不是 ``'APPLICATION')。

请参阅 从预算中移除 Snowflake Native App

返回

返回 VARCHAR 值,用于指明对象是否已成功从预算中移除。例如:

Successfully removed resource from resource group

如果无法从预算中移除对象,该函数将返回一条错误消息。请参阅 您无法在自定义预算中添加或移除对象

访问控制要求

要对 自定义预算 调用此方法,需要具备以下最低权限和角色:

  • 预算实例的 ADMIN 实例角色

  • 对包含预算实例的数据库和架构的 USAGE 权限。

  • 对包含该对象的数据库和架构的 USAGE 权限(对于架构对象)。

  • 被移除对象的 APPLYBUDGET 权限。

有关更多信息,请参阅 Budgets 角色和权限

使用说明

  • 此方法只能在 自定义预算 实例上调用。

  • 调用此方法不会返回对象。因此,您无法使用方法链来调用此方法返回值上的另一个方法。相反,应在单独 SQL 语句中调用每个方法。

示例

以下示例展示了如何从自定义预算中移除对象:

从预算中移除表

  • 以下示例创建并返回 t1 表的引用:

    SELECT SYSTEM$REFERENCE('TABLE', 't1', 'SESSION', 'APPLYBUDGET');
    
    Copy

    该语句会在输出中返回引用。

    ENT_REF_TABLE_5862683050074_5AEB8D58FB3ACF249F2E35F365A9357C46BB00D7
    

    以下语句使用此引用的字符串字面量从 budget_db.budget_schema.my_budget 预算中移除 t1 表:

    CALL budget_db.budget_schema.my_budget!REMOVE_RESOURCE(
      'ENT_REF_TABLE_5862683050074_5AEB8D58FB3ACF249F2E35F365A9357C46BB00D7');
    
    Copy
  • 以下示例从 budget_db.budget_schema.my_budget 预算中移除 t2 表,并使用 SQL 语句指定引用:

    CALL budget_db.budget_schema.my_budget!REMOVE_RESOURCE(
      SELECT SYSTEM$REFERENCE('TABLE', 't2', 'SESSION', 'APPLYBUDGET')
    
    Copy

从预算中移除 Snowflake Native App

以下示例从 budget_db.budget_schema.my_budget 预算中移除 my_app 应用程序。

注意,调用 SYSTEM$REFERENCE 时,必须为 object_type 实参传递 'DATABASE'``(而非 ``'APPLICATION')。

CALL budget_db.budget_schema.my_budget!REMOVE_RESOURCE(
  SELECT SYSTEM$REFERENCE('DATABASE', 'my_app', 'SESSION', 'APPLYBUDGET'));
Copy

错误消息

有关常见错误消息及其原因和解决方案的列表,请参阅 您无法在自定义预算中添加或移除对象

语言: 中文