<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 角色和权限

使用说明

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

  • 您只能将对象添加到一个自定义预算。如果对象当前包含在一个自定义预算中,并且您将该对象添加到第二个自定义预算中,则 Budgets 将从第一个自定义预算中移除该对象,而不会发出警告。

  • 不能为 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

错误消息

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

语言: 中文