
# ALTER TABLE
#### 功能描述
ALTER TABLE为DataArts Fabric SQL服务下特有语法，该语法功能是修改LakeFormation上表的元数据信息，用于调整数据表的结构或属性。
#### 约束限制
- ADD COLUMNS、DROP COLUMNS、COLUMN RENAME、ALTER COLUMN语法仅对ICEBERG表生效，ORC、PARQUET表无法对列进行操作。
- 列位置操作、复杂类型字段操作仅对ICEBERG表生效。
- 外表（EXTERNAL TABLE）不支持ALTER TABLE。
 
#### 语法格式
```
ALTER TABLE table_name DROP PARTITIONS ( col_name = col_value [, ... ] ) [, ... ];
ALTER TABLE table_name ADD COLUMN col_name col_type [ COMMENT col_comment ] [ FIRST |  BEFORE col_name | AFTER col_name ] [, ... ];
ALTER TABLE table_name DROP COLUMNS ( col_name [, ... ] );
ALTER TABLE table_name RENAME COLUMN col_name TO col_name_new;
ALTER TABLE table_name ALTER COLUMN col_name [ TYPE col_type ] [ COMMENT col_comment ] [ FIRST |  BEFORE col_name | AFTER col_name ] [, ... ];
ALTER TABLE table_name RENAME TO table_name_new;
ALTER TABLE table_name SET TABLEPROPERTIES ( option_key = option_value [, ... ] );
ALTER TABLE table_name UNSET TABLEPROPERTIES ( option_key [, ... ] );
ALTER TABLE table_name UPDATE COLUMNS;
```
#### 参数说明
该ALTER TABLE语法中，参数规格与建表规格一致。
#### 示例
在表test_table中添加sales bigint列：
```
ALTER TABLE test_table ADD COLUMN sales bigint COMMENT 'factory sales volume';
```
将表test_table中sales列更名为my_sales：
```
ALTER TABLE test_table RENAME COLUMN sales TO my_sales;
```
将表test_table中my_sales列类型更换为String：
```
ALTER TABLE test_table ALTER COLUMN my_sales TYPE text COMMENT 'factory sales volume';
```
将表test_table中my_sales列删除：
```
ALTER TABLE test_table DROP COLUMNS ( my_sales );
```
将表test_table更名为factory_info：
```
ALTER TABLE test_table RENAME TO factory_info;
```
将表factory_info中参数hoodie.metadata.enable打开：
```
ALTER TABLE factory_info SET TABLEPROPERTIES ( 'hoodie.metadata.enable' = 'true' );
```
将表factory_info中参数恢复默认值：
```
ALTER TABLE factory_info UNSET TABLEPROPERTIES ( 'hoodie.metadata.enable' );
```
同步表factory_info分区信息：
```
ALTER TABLE factory_info UPDATE COLUMNS;
```
