更新时间:2026-07-03 GMT+08:00
修改视图
功能描述
ALTER VIEW语句用于修改视图的元数据,包括重命名视图、设置/删除视图属性。
语法
- 重命名视图
ALTER VIEW view_identifier RENAME TO view_identifier
- 设置视图属性
ALTER VIEW view_identifier SET TBLPROPERTIES ( property_key = property_val [, ...] )
- 删除视图属性
ALTER VIEW view_identifier UNSET TBLPROPERTIES [ IF EXISTS ] ( property_key [, ...] )
参数说明
| 参数 | 描述 |
|---|---|
| view_identifier | 视图名称,可使用 database_name.view_name 限定。 |
| RENAME TO | 重命名视图。源数据库和目标数据库必须相同,不支持跨数据库移动视图。 |
| SET TBLPROPERTIES | 设置视图属性。如果属性键已存在,则替换值;如果不存在,则添加。 |
| UNSET TBLPROPERTIES | 删除视图属性。如果指定 IF EXISTS,属性不存在时不报错。 |
| property_key | 属性键名,可由多个以点分隔的部分组成,如 key_part1.key_part2。 |
示例
重命名视图
ALTER VIEW tempdb1.v1 RENAME TO tempdb1.v2;
设置视图属性
ALTER VIEW tempdb1.v2 SET TBLPROPERTIES ('created.by.user' = 'John', 'created.date' = '01-01-2001'); 删除视图属性
-- 删除已有属性
ALTER VIEW tempdb1.v2 UNSET TBLPROPERTIES ('created.by.user', 'created.date');
-- 使用IF EXISTS避免属性不存在时报错
ALTER VIEW tempdb1.v2 UNSET TBLPROPERTIES IF EXISTS ('non-existent'); 注意事项
- ALTER VIEW仅修改视图的元数据,不会影响底层数据。
- 重命名视图时,如果新视图名已存在,会抛出 TableAlreadyExistsException。
- 重命名视图会清除该视图及其依赖项的缓存数据。
- ALTER VIEW不支持 SET SERDE 或 SET SERDEPROPERTIES。
- WITH SCHEMA不支持TEMPORARY视图。
父主题: 视图