一、重命名视图(RENAME View)
重命名现有视图。如果新视图名称在源数据库中已存在,将抛出 TableAlreadyExistsException。此操作不支持跨数据库移动视图。
如果视图已被缓存,该命令会清除视图及其所有引用依赖项的缓存数据。视图的缓存将在下次访问时延迟填充。该命令会将视图的依赖项置为未缓存状态。
二、语法
ALTER VIEW view_identifier RENAME TO view_identifier
三、参数
| 参数 | 说明 | 语法 |
| view_identifier | 指定视图名称,可以选择性地用数据库名进行限定 | [ database_name. ] view_name |
四、设置视图属性(SET View Properties)
设置现有视图的一个或多个属性。属性是键值对。如果属性的键已存在,值将被新值替换。如果属性的键不存在,键值对将被添加到属性中。
五、语法
ALTER VIEW view_identifier SET TBLPROPERTIES ( property_key = property_val [ , … ] )
六、取消设置视图属性(UNSET View Properties)
删除现有视图的一个或多个属性。如果指定的键不存在,将抛出异常。使用 IF EXISTS 可避免异常。
七、语法
ALTER VIEW view_identifier UNSET TBLPROPERTIES [ IF EXISTS ] ( property_key [ , … ] )
八、修改视图定义(ALTER View AS SELECT)
ALTER VIEW view_identifier AS SELECT 语句用于更改视图的定义。SELECT 语句必须有效,且 view_identifier 必须存在。
注意:ALTER VIEW 语句不支持 SET SERDE 或 SET SERDEPROPERTIES 属性。
九、语法
ALTER VIEW view_identifier AS select_statement
十、示例
— 创建独立数据库和基础表CREATE DATABASE tempdb_view_test;USE tempdb_view_test;CREATE EXTERNAL TABLE base_table (c1 INT, c2 STRING) USING PARQUET LOCATION 'cosn://<your_bucket_name>/test_alter_view/base_table';CREATE VIEW v1 AS SELECT c1, c2 FROM base_table;– 重命名视图ALTER VIEW v1 RENAME TO v2;– 验证视图DESCRIBE TABLE EXTENDED v2;– 设置视图属性ALTER VIEW v2 SET TBLPROPERTIES ('created.by.user' = 'John', 'created.date' = '01-01-2001');– 验证属性DESCRIBE TABLE EXTENDED v2;– 取消设置视图属性ALTER VIEW v2 UNSET TBLPROPERTIES ('created.by.user', 'created.date');ALTER VIEW v2 UNSET TBLPROPERTIES IF EXISTS ('nonexistent_key');– 修改视图定义ALTER VIEW v2 AS SELECT c1 FROM base_table WHERE c1 > 0;– 验证新定义DESCRIBE TABLE EXTENDED v2;– 切回默认数据库USE default;