<budget_name>!ADD_RESOURCE

将对象添加到 自定义预算。必须通过 引用 添加对象。

另请参阅:

<budget_name>!REMOVE_RESOURCE<budget_name>!GET_LINKED_RESOURCES

语法

<budget_name>!ADD_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 added resource to resource group

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

访问控制要求

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

  • 预算实例的 ADMIN 实例角色

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

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

  • 被添加对象的 APPLYBUDGET 权限。

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

使用说明

  • 您只能将对象添加到 自定义预算

  • If you are directly adding individual objects, you can only add an object to one custom budget. In this case, if an object is currently included in one custom budget and you add that object to a second custom budget, Budgets removes the object from the first custom budget without issuing a warning.

    此行为不适用于使用标签将对象添加到预算中;如果您使用标签将对象添加到预算中,则具有一个或多个标签的对象可以包含在多个自定义预算中。

  • 不能为 SNOWFLAKE 数据库创建引用,也不能将其添加到预算。

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

示例

以下示例演示了如何将对象添加到自定义预算:

将表添加到预算

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

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

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

    ENT_REF_TABLE_5862683050074_5AEB8D58FB3ACF249F2E35F365A9357C46BB00D7
    

    以下语句使用此引用的字符串字面量将 t1 表添加到 budget_db.budget_schema.my_budget 预算:

    CALL budget_db.budget_schema.my_budget!ADD_RESOURCE(
      'ENT_REF_TABLE_5862683050074_5AEB8D58FB3ACF249F2E35F365A9357C46BB00D7');
    
    Copy
  • 以下示例将 t2 表添加到 budget_db.budget_schema.my_budget 预算,并使用 SQL 语句指定引用:

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

将 Snowflake Native App 添加到预算

以下示例将 my_app 应用程序添加到 budget_db.budget_schema.my_budget 预算中。

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

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

错误消息

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

语言: 中文