类别:

系统函数 (控制)

SYSTEM$SET_DEFAULT_COLUMNS_OVERRIDE_FOR_SYSTEM_OBJECT

控制从指定的 Snowflake 视图(例如,从特定 ACCOUNT_USAGE 视图INFORMATION_SCHEMA 视图)中选择所有列 (SELECT *) 时应返回的列。

备注

此函数不会影响从视图中选择特定列的查询。

如果在 Snowflake 视图中新增列导致某个选择所有列并依赖于结果中固定列数量或列顺序的脚本或代码出现问题,则可以调用此函数。请参阅 处理 SHOW 命令输出和 Snowflake 视图中的新列

另请参阅:

SYSTEM$GET_DEFAULT_COLUMNS_OVERRIDE_FOR_SYSTEM_OBJECTSYSTEM$UNSET_DEFAULT_COLUMNS_OVERRIDE_FOR_SYSTEM_OBJECTSYSTEM$GET_ALL_DEFAULT_COLUMNS_OVERRIDES

语法

SYSTEM$SET_DEFAULT_COLUMNS_OVERRIDE_FOR_SYSTEM_OBJECT(
  '<object_type>',
  '<database_name>',
  '<schema_name>',
  '<object_name>',
  '<list_of_columns>'
)

实参

'object_type'

对象的类型。您必须指定此实参的 'VIEW'

'database_name'

包含对象的数据库的名称。您必须指定 'SNOWFLAKE';或者,对于 INFORMATION_SCHEMA 视图,则需指定空字符串。

'schema_name'

包含对象的架构的名称。您必须在 SNOWFLAKE 数据库'INFORMATION_SCHEMA' 中指定架构名称。

'object_name'

对象名称。

list_of_columns

一个以逗号或空格分隔的列列表,用于指定在从此视图选择所有列时应返回哪些列。

您可以以大写、小写或混合大小写形式指定列名。

要返回所有列,请指定空字符串或调用 SYSTEM$UNSET_DEFAULT_COLUMNS_OVERRIDE_FOR_SYSTEM_OBJECT。

返回

如果操作成功,返回 TRUE。

访问控制要求

只有账户管理员(被授予 ACCOUNTADMIN 角色的用户)可以调用此函数。

使用说明

  • 您必须有正在使用的数据库(例如,通过运行 USE DATABASE)才能调用此函数。如果没有正在使用的数据库,则函数调用会失败。

示例

以下示例配置了在 ACCOUNT_USAGE 架构下的 TABLES 视图 视图执行“选择所有列”的查询,使其仅返回 table_nametable_schematable_type 列:

SELECT SYSTEM$SET_DEFAULT_COLUMNS_OVERRIDE_FOR_SYSTEM_OBJECT(
  'VIEW',
  'SNOWFLAKE',
  'ACCOUNT_USAGE',
  'TABLES',
  'table_name, table_schema, table_type'
);

从该视图选择所有列时,仅会返回指定的列:

SELECT * FROM SNOWFLAKE.ACCOUNT_USAGE.TABLES;
+------------+---------------------+------------+
| TABLE_NAME | TABLE_SCHEMA        | TABLE_TYPE |
|------------+---------------------+------------|
| MY_TABLE   | MY_SCHEMA           | BASE TABLE |
+------------+---------------------+------------+

以下示例配置了在 INFORMATION_SCHEMA 架构下的 TABLES 视图 视图执行“选择所有列”的查询,使其仅返回 table_nametable_schematable_type 列:

SELECT SYSTEM$SET_DEFAULT_COLUMNS_OVERRIDE_FOR_SYSTEM_OBJECT(
  'VIEW',
  '',
  'INFORMATION_SCHEMA',
  'TABLES',
  'table_name, table_schema, table_type'
);

从该视图选择所有列时,仅会返回指定的列:

SELECT * FROM INFORMATION_SCHEMA.TABLES;
+--------------+------------+------------+
| TABLE_SCHEMA | TABLE_NAME | TABLE_TYPE |
|--------------+------------+------------|
| MY_SCHEMA    | MY_TABLE   | BASE TABLE |
+--------------+------------+------------+