更改字段 (数据管理)

摘要

重命名字段和字段别名,或更改字段属性。

使用情况

  • 使用此工具,您可以重命名所有地理数据库表或要素类的字段或字段别名。

  • 在使用内存中的要素类或表时,对 ObjectIDShape 或其他必填字段(如网络分析图层中找到的字段)进行重命名会导致数据损坏或发生异常行为。

参数

标注说明数据类型
输入表

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

Table View; Raster Layer; Mosaic Layer
字段名

待更改字段的名称。 如果字段为必填字段,则只有字段别名是可更改的。

Field
新字段名称
(可选)

字段的新名称。

String
新字段别名
(可选)

字段的新字段别名。

String
新字段类型
(可选)

指定字段的新字段类型。 此参数仅在输入表为空(不包括记录)的情况下适用。

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

字段的新长度。 它为字段的每条记录设置最大允许字符数。 此参数仅适用于 TextBlob(二进制数据)类型的字段。 如果表为空,则可以增大或减小字段长度。 如果表不为空,则仅可在当前值的基础上增加长度。

Long
新字段 IsNullable
(可选)

指定该字段是否可包含空值。 只有地理数据库中的字段支持空值。 此参数仅在表为空(不包括记录)的情况下适用。

  • 选中 - 字段可包含空值。 这是默认设置。
  • 未选中 - 字段不可包含空值。
Boolean
清除别名
(可选)

指定是否清除输入字段的别名。 要清除字段别名,新建字段别名参数值必须为空。

  • 选中 - 将清除字段别名(设为空值)。 字段别名参数必须为空。
  • 未选中 - 不会清除字段别名。 这是默认设置。
Boolean

派生输出

标注说明数据类型
更新的输入表

已更新的输入表。

Table View; Raster Layer; Mosaic Layer

arcpy.management.AlterField(in_table, field, {new_field_name}, {new_field_alias}, {field_type}, {field_length}, {field_is_nullable}, {clear_field_alias})
名称说明数据类型
in_table

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

Table View; Raster Layer; Mosaic Layer
field

待更改字段的名称。 如果字段为必填字段,则只有字段别名是可更改的。

Field
new_field_name
(可选)

字段的新名称。

String
new_field_alias
(可选)

字段的新字段别名。

String
field_type
(可选)

指定字段的新字段类型。 此参数仅在输入表为空(不包括记录)的情况下适用。

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

字段的新长度。 它为字段的每条记录设置最大允许字符数。 此参数仅适用于 TEXTBLOB 类型的字段。 如果表为空,则可以增大或减小字段长度。 如果表不为空,则仅可在当前值的基础上增加长度。

Long
field_is_nullable
(可选)

指定该字段是否可包含空值。 只有地理数据库中的字段支持空值。 此参数仅在输入表为空(不包括记录)的情况下适用。

  • NON_NULLABLE字段可包含空值。
  • NULLABLE字段不可包含空值。 这是默认设置。
Boolean
clear_field_alias
(可选)

指定是否清除输入字段的别名。 要清除字段别名,new_field_alias 参数必须为空。

  • CLEAR_ALIAS将清除字段别名(设为空值)。
  • DO_NOT_CLEAR不会清除字段别名。 这是默认设置。
Boolean

派生输出

名称说明数据类型
out_table

已更新的输入表。

Table View; Raster Layer; Mosaic Layer

代码示例

AlterField 示例 1(Python 窗口)

以下 Python 窗口脚本演示了如何在即时模式下使用 AlterField 函数。

import arcpy
arcpy.management.AlterField(
    r'C:\Data\Garbo.gdb\Khyber', 'Elev', 'ELEVATION', 'Elevation in Metres')
AlterField 示例 2(独立脚本)

以下 Python 窗口脚本演示了如何在独立脚本中使用 AlterField 函数。

import arcpy

# Set workspace
arcpy.env.workspace = r'C:\Data\Garbo.gdb'

# Loop through feature classes looking for a field named 'elev'
fcList = arcpy.ListFeatureClasses()  # Get a list of feature classes
for fc in fcList:  # Loop through feature classes
    fieldList = arcpy.ListFields(fc)  # Get a list of fields for each feature class
    for field in fieldList:  # Lloop through each field
        if field.name.lower() == 'elev':  # Look for the name elev
            arcpy.management.AlterField(fc, field.name, 'ELEVATION', 'Elevation in Metres')
AlterField 示例 3(独立脚本)

以下 Python 窗口脚本演示了如何对独立脚本中的空要素类使用 AlterField 函数。

import arcpy

# Set local variables
in_table = "C:/Data/Garbo.gdb/trails"  # Note: empty feature class
field = "condition_rating"  # short int, non nullable field
new_field_name = "notes"
new_field_alias = "Comments on Trail Condition"
field_type = "TEXT"
field_length = 60
field_is_nullable = "NULLABLE"
clear_field_alias = "FALSE"

# Alter the properties of a non nullable, short data type field to become a text field
arcpy.management.AlterField(in_table,
                            field,
                            new_field_name,
                            new_field_alias,
                            field_type,
                            field_length,
                            field_is_nullable,
                            clear_field_alias)