<budget_name>!ADD_RESOURCE¶
语法¶
<budget_name>!ADD_RESOURCE( { '<object_reference>' | <reference_statement> } )
实参¶
'object_reference'
解析为对象的序列化字符串表示形式。此字符串是 SYSTEM$REFERENCE 函数的输出。
reference_statement
SYSTEM$REFERENCE 语句,用于为要添加到预算中的对象创建引用。
备注
如果您想在预算中添加 Snowflake Native App,当您调用 SYSTEM$REFERENCE 时,请为 object_type
实参指定 'DATABASE'``(而不是 ``'APPLICATION'
)。
返回¶
返回一个 VARCHAR 值,用于指明对象是否已成功添加到预算中。例如:
Successfully added resource to resource group
如果对象未添加到预算,函数会返回错误消息。请参阅 您无法在自定义预算中添加或移除对象。
访问控制要求¶
要为自定义预算调用此方法,需要具备以下权限和角色:
预算实例的 ADMIN 实例角色。
对包含预算实例的数据库和架构的 USAGE 权限。
对包含该被添加对象的数据库和架构的 USAGE 权限(对于架构对象)。
被添加对象的 APPLYBUDGET 权限。
有关更多信息,请参阅 Budgets 角色和权限。
使用说明¶
您只能将对象添加到 自定义预算。
您只能将对象添加到一个自定义预算。如果对象当前包含在一个自定义预算中,并且您将该对象添加到第二个自定义预算中,则 Budgets 将从第一个自定义预算中移除该对象,而不会发出警告。
不能为 SNOWFLAKE 数据库创建引用,也不能将其添加到预算。
调用此方法不会返回对象。因此,您无法使用方法链来调用此方法返回值上的另一个方法。相反,应在单独 SQL 语句中调用每个方法。
示例¶
以下示例演示了如何将对象添加到自定义预算:
将表添加到预算¶
以下示例创建并返回
t1
表的引用:SELECT SYSTEM$REFERENCE('TABLE', 't1', 'SESSION', 'APPLYBUDGET');
该语句会在输出中返回引用。
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');
以下示例将
t2
表添加到budget_db.budget_schema.my_budget
预算,并使用 SQL 语句指定引用:CALL budget_db.budget_schema.my_budget!ADD_RESOURCE( SELECT SYSTEM$REFERENCE('TABLE', 't2', 'SESSION', 'APPLYBUDGET'));
将 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'));
错误消息¶
有关常见错误消息及其原因和解决方案的列表,请参阅 您无法在自定义预算中添加或移除对象。