更新时间: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视图。

相关文档