修改字段(多个) (数据管理)

摘要

改变要素类或表中多个字段的字段属性。

使用情况

    警告:

    此工具会修改输入数据。 有关详细信息以及避免数据被意外更改的策略,请参阅修改或更新输入数据的工具

  • 此工具用于重命名地理数据库表或要素类的字段或字段别名。

  • 可以使用此工具修改已注册到地理数据库的表或视图中字段的字段别名。

  • 如果输入字段为必填字段,则只能修改字段别名。

参数

标注说明数据类型
输入表

包含将进行更改的字段的输入地理数据库表或要素类。

Table View; Raster Layer; Mosaic Layer
字段属性
(可选)

将被修改的输入表字段及其属性。

  • 字段名称 - 将要修改的字段的名称。 如果字段为必填字段,则将仅更改字段别名。
  • 新字段名称(可选)- 字段的新名称。
  • 新字段别名(可选)- 字段的新字段别名。
  • 新字段类型(可选)- 指定字段的新字段类型。 此列仅在输入表为空(不包括记录)的情况下适用。
  • 新字段长度(可选)- 字段的新长度(长整型)。 它为字段的每条记录设置最大允许字符数。 此选项仅适用于 TextBlob(二进制数据)类型的字段。 如果表为空,则可以增大或减小字段长度。 如果表不为空,则仅可在当前值的基础上增加长度。
  • 新字段 IsNullable - 指定该字段是否可包含空值。 只有地理数据库中的字段支持空值。 此选项仅在表为空(不包括记录)的情况下适用。 选中,则字段可包含空值。 这是默认设置。 未选中,则字段不可包含空值。
  • 清除别名(可选)- 指定是否清除输入字段的别名。 要清除字段别名,新建字段别名值必须为空。 选中,则将清除字段别名(设为空值)。 未选中,则不会清除字段别名。 这是默认设置。

可用字段类型如下:

  • 短整型(16 位整型)- 此字段类型将为短整型。 短整型字段支持介于 -32,768 和 32,767 之间的整数。
  • 长整型(32 位整型)- 此字段类型将为长整型。 长整型字段支持介于 -2,147,483,648 和 2,147,483,647 之间的整数。
  • 大整型(64 位整型)- 此字段类型将为大整型。 大整型字段支持 -(253) 和 253 之间的整数。
  • 浮点型(32 位浮点型)- 此字段类型将为浮点型。 浮点型字段支持介于 -3.4E38 和 1.2E38 之间的小数。
  • 双精度型(64 位浮点型)- 此字段类型将为双精度型。 双精度型字段支持介于 -2.2E308 和 1.8E308 之间的小数。
  • 文本 - 此字段类型将为文本。 文本字段支持字符串。
  • 日期 - 此字段类型将为日期。 日期字段支持日期和时间值。
  • 日期(高精度)- 此字段类型将为高精度日期。 高精度日期字段支持包含毫秒时间的日期和时间值。
  • 仅日期 - 此字段类型将为仅日期。 仅日期字段支持不带时间值的日期值。
  • 仅时间 - 此字段类型将为仅时间。 仅时间字段支持不带日期值的时间值。
  • 时间戳偏移 - 此字段类型将为时间戳偏移。 时间戳偏移字段支持日期、时间和相对于 UTC 值的偏移。
  • Blob(二进制数据)- 此字段类型将为 BLOB。 BLOB 字段支持存储为长度较长的一系列二进制数的数据。 您需要一个自定义的加载器、查看器或第三方应用程序将这些项加载到 BLOB 字段中或者查看 BLOB 字段的内容。
  • GUID(全局唯一标识符)- 此字段类型将为 GUID。 GUID 字段可存储注册表样式的字符串,该字符串包含用大括号括起来的 36 个字符。
  • 栅格影像 - 此字段类型将为栅格。 栅格字段格可在地理数据库中存储栅格数据或者将该数据与地理数据库一同存储。 可以存储 ArcGIS 软件支持的所有栅格数据集格式,但建议您仅使用小影像。
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}],...]
(可选)

将被修改的输入表字段及其属性。

  • Field Name - 将进行更改的字段的名称。 如果字段为必填字段,则将仅更改字段别名。
  • New Field Name(可选)- 字段的新名称。
  • New Field Alias(可选)- 字段的新字段别名。
  • New Field Type(可选)- 指定字段的新字段类型。 此选项仅在输入表为空(不包括记录)的情况下适用。
  • New Field Length(可选)- 字段的新长度。 它为字段的每条记录设置最大允许字符数。 此选项仅适用于 TEXTBLOB 类型的字段。 如果表为空,则可以增大或减小字段长度。 如果表不为空,则仅可在当前值的基础上增加长度。
  • New Field IsNullable(可选)- 指定该字段是否可包含空值。 只有地理数据库中的字段支持空值。 此选项仅在表为空(不包括记录)的情况下适用。 如果设置为 True,则字段可包含空值。 这是默认设置。 如果设置为 False,则字段不可包含空值。
  • Clear Alias(可选)- 指定是否清除输入字段的别名。 要清除字段别名,New Field Alias 值必须为空。 如果设置为 True,则将清除字段别名(设为空值)。 如果设置为 False,则不会清除字段别名。 这是默认设置。

可用字段类型如下:

  • SHORT - 此字段类型将为短整型。 短整型字段支持介于 -32,768 和 32,767 之间的整数。
  • LONG - 此字段类型将为长整型。 长整型字段支持介于 -2,147,483,648 和 2,147,483,647 之间的整数。
  • BIGINTEGER - 此字段类型将为大整型。 大整型字段支持 -(253) 和 253 之间的整数。
  • FLOAT - 此字段类型将为浮点型。 浮点型字段支持介于 -3.4E38 和 1.2E38 之间的小数。
  • DOUBLE - 此字段类型将为双精度型。 双精度型字段支持介于 -2.2E308 和 1.8E308 之间的小数。
  • TEXT - 此字段类型将为文本。 文本字段支持字符串。
  • DATE - 此字段类型将为日期。 日期字段支持日期和时间值。
  • DATEHIGHPRECISION - 此字段类型将为高精度日期。 高精度日期字段支持包含毫秒时间的日期和时间值。
  • DATEONLY - 此字段类型将为仅日期。 仅日期字段支持不带时间值的日期值。
  • TIMEONLY - 此字段类型将为仅时间。 仅时间字段支持不带日期值的时间值。
  • TIMESTAMPOFFSET - 此字段类型将为时间戳偏移。 时间戳偏移字段支持日期、时间和相对于 UTC 值的偏移。
  • BLOB - 此字段类型将为 BLOB。 BLOB 字段支持存储为长度较长的一系列二进制数的数据。 您需要一个自定义的加载器、查看器或第三方应用程序将这些项加载到 BLOB 字段中或者查看 BLOB 字段的内容。
  • GUID - 此字段类型将为 GUID。 GUID 字段可存储注册表样式的字符串,该字符串包含用大括号括起来的 36 个字符。
  • RASTER - 此字段类型将为栅格。 栅格字段格可在地理数据库中存储栅格数据或者将该数据与地理数据库一同存储。 可以存储 ArcGIS 软件支持的所有栅格数据集格式,但建议您仅使用小影像。

Value Table

派生输出

名称说明数据类型
out_table

已更新的输入表。

Table View; Raster Layer; Mosaic Layer

代码示例

AlterFields 示例 1(独立脚本)

以下独立脚本演示了如何使用 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 示例 2(独立脚本)

以下独立脚本演示了如何使用 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)

许可信息

  • Basic: 是
  • Standard: 是
  • Advanced: 是

相关主题