更改字段 (数据管理)

描述

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

使用方法

  • 此工具能够重命名所有地理数据库表或要素类的字段或字段别名。

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

语法

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

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

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 字段的内容。
  • RASTER栅格影像。可以存储 ArcGIS 软件支持的所有栅格数据集格式,但强烈建议您仅使用小影像。
  • GUID全局唯一标识符。
String
field_length
(可选)

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

Long
field_is_nullable
(可选)

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

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

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

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

派生输出

名称说明数据类型
out_table

已更新的输入表。

表视图;栅格图层;镶嵌图层

代码示例

AlterField 示例 1(Python 窗口)

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

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

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

#Import geoprocessing
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: #loop through each field
        if field.name.lower() == 'elev':  #look for the name elev
            arcpy.AlterField_management(fc, field.name, 'ELEVATION', 'Elevation in Metres')
AlterField 示例 3(独立脚本)

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

#Import geoprocessing
import arcpy

#Set local variables
fc = "C:/Data/Garbo.gdb/trails" #Note:empty feature class
field = "condition_rating" #short int, non nullable field
new_name = "notes"
new_alias = "Comments on Trail Condition"
new_type = "TEXT"
new_length = "60"
new_is_nullable = "NULLABLE"
clear_alias = "FALSE"

#Alter the properties of a non nullable, short data type field to become a text field
arcpy.AlterField_management(fc, field, new_name, new_alias, new_type, new_length, new_is_nullable, clear_alias)

许可信息

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

相关主题