标注 | 说明 | 数据类型 |
输入表 | 包含将进行更改的字段的输入地理数据库表或要素类。 | Table View; Raster Layer; Mosaic Layer |
字段属性 (可选) | 将被修改的输入表字段及其属性。
可用字段类型如下:
| Value Table |
派生输出
标注 | 说明 | 数据类型 |
更新的输入表 | 已更新的输入表。 | Table View; Raster Layer; Mosaic Layer |
改变要素类或表中多个字段的字段属性。
此工具会修改输入数据。 有关详细信息以及避免数据被意外更改的策略,请参阅修改或更新输入数据的工具。
此工具用于重命名地理数据库表或要素类的字段或字段别名。
可以使用此工具修改已注册到地理数据库的表或视图中字段的字段别名。
如果输入字段为必填字段,则只能修改字段别名。
标注 | 说明 | 数据类型 |
输入表 | 包含将进行更改的字段的输入地理数据库表或要素类。 | Table View; Raster Layer; Mosaic Layer |
字段属性 (可选) | 将被修改的输入表字段及其属性。
可用字段类型如下:
| Value Table |
标注 | 说明 | 数据类型 |
更新的输入表 | 已更新的输入表。 | Table View; Raster Layer; Mosaic Layer |
arcpy.management.AlterFields(in_table, {field_description})
名称 | 说明 | 数据类型 |
in_table | 包含将进行更改的字段的输入地理数据库表或要素类。 | Table View; Raster Layer; Mosaic Layer |
field_description [[Field Name, {New Field Name}, {New Field Alias}, {New Field Type}, {New Field Length}, {New Field IsNullable}, {Clear Alias}],...] (可选) | 将被修改的输入表字段及其属性。
可用字段类型如下:
| Value Table |
名称 | 说明 | 数据类型 |
out_table | 已更新的输入表。 | Table View; Raster Layer; Mosaic Layer |
以下独立脚本演示了如何使用 AlterFields 函数更改要素类中字段的字段别名。
import arcpy
test_class = arcpy.management.CreateFeatureclass(out_gdb, "new_fc", geometry_type='POLYGON')
field_description = [
['SHORT_FIELD', 'SHORT', 'SHORT_FIELD_Alias', '#', '#', '#'],
['LONG_FIELD', 'LONG', 'LONG_FIELD_Alias', '#', '#', '#'],
['BIGINTEGER_FIELD', 'BIGINTEGER', 'BIGINTEGER_FIELD_Alias', '#', '#', '#'],
['FLOAT_FIELD', 'FLOAT', 'FLOAT_FIELD_Alias', '#', '#', '#'],
['DOUBLE_FIELD', 'DOUBLE', 'DOUBLE_FIELD_Alias', '#', '#', '#'],
['TEXT_FIELD', 'TEXT', 'TEXT_FIELD_Alias', '#', '#', '#'],
['DATE_FIELD', 'DATE', 'DATE_FIELD_Alias', '#', '#', '#'],
['DATEONLY_FIELD', 'DATEONLY', 'DATEONLY_FIELD_Alias', '#', '#', '#'],
['TIMEONLY_FIELD', 'TIMEONLY', 'TIMEONLY_FIELD_Alias', '#', '#', '#'],
['TIMESTAMPOFFSET_FIELD', 'TIMESTAMPOFFSET', 'TIMESTAMPOFFSET_FIELD_Alias', '#', '#', '#']
]
arcpy.management.AddFields(test_class, field_description, None)
alter_field_description = [
['SHORT_FIELD', 'SHORT_FIELD_altered', '#', '#', '#', '#'],
['LONG_FIELD', 'LONG_FIELD_altered', '#', '#', '#', '#'],
['BIGINTEGER_FIELD', 'BIGINTEGER_FIELD_altered', '#', '#', '#', '#'],
['FLOAT_FIELD', 'FLOAT_FIELD_altered', '#', '#', '#', '#'],
['DOUBLE_FIELD', 'DOUBLE_FIELD_altered', '#', '#', '#', '#'],
['TEXT_FIELD', 'TEXT_FIELD_altered', '#', '#', '#', '#'],
['DATE_FIELD', 'DATE_FIELD_altered', '#', '#', '#', '#'],
['DATEONLY_FIELD', 'DATEONLY_FIELD_altered', '#', '#', '#', '#'],
['TIMEONLY_FIELD', 'TIMEONLY_FIELD_altered', '#', '#', '#', '#'],
['TIMESTAMPOFFSET_FIELD', 'TIMESTAMPOFFSET_FIELD_altered', '#', '#', '#', '#']
]
arcpy.management.AlterFields(in_table=test_class, field_description=alter_field_description)
以下独立脚本演示了如何使用 AlterFields 函数改变空表中字段的可为空字段属性。
import arcpy
test_class = arcpy.management.CreateTable(out_gdb, "new_table")
field_description = [
['SHORT_FIELD', 'SHORT', 'SHORT_FIELD_Alias', '#', '#', '#'],
['LONG_FIELD', 'LONG', 'LONG_FIELD_Alias', '#', '#', '#'],
['BIGINTEGER_FIELD', 'BIGINTEGER', 'BIGINTEGER_FIELD_Alias', '#', '#', '#'],
['FLOAT_FIELD', 'FLOAT', 'FLOAT_FIELD_Alias', '#', '#', '#'],
['DOUBLE_FIELD', 'DOUBLE', 'DOUBLE_FIELD_Alias', '#', '#', '#'],
['TEXT_FIELD', 'TEXT', 'TEXT_FIELD_Alias', '#', '#', '#'],
['DATE_FIELD', 'DATE', 'DATE_FIELD_Alias', '#', '#', '#'],
['DATEONLY_FIELD', 'DATEONLY', 'DATEONLY_FIELD_Alias', '#', '#', '#'],
['TIMEONLY_FIELD', 'TIMEONLY', 'TIMEONLY_FIELD_Alias', '#', '#', '#'],
['TIMESTAMPOFFSET_FIELD', 'TIMESTAMPOFFSET', 'TIMESTAMPOFFSET_FIELD_Alias', '#', '#', '#']
]
arcpy.management.AddFields(test_class, field_description, None)
# Change the nullable property to true
alter_field_description = [
['SHORT_FIELD', '#', '#', '#','#', 'true', '#'],
['LONG_FIELD', '#', '#', '#','#', 'true', '#'],
['BIGINTEGER_FIELD', '#', '#', '#','#', 'true', '#'],
['FLOAT_FIELD', '#', '#', '#','#', 'true', '#'],
['DOUBLE_FIELD', '#', '#', '#','#', 'true', '#'],
['TEXT_FIELD', '#', '#', '#','#', 'true', '#'],
['DATE_FIELD', '#', '#', '#','#', 'true', '#'],
['DATEONLY_FIELD', '#', '#', '#','#', 'true', '#'],
['TIMEONLY_FIELD', '#', '#', '#','#', 'true', '#'],
['TIMESTAMPOFFSET_FIELD', '#', '#', '#','#', 'true', '#']
]
arcpy.management.AlterFields(in_table=test_class, field_description=alter_field_description)