Question: I have over a hundred FCs, each with 10 or 20 attributes to add or change the aliases for, two or more times a year. Needless to say, this is not something I'm going to grunt my way through. How can I automate this process?

Python solution preferred but will use anything that works.

I have access to Arcgis 9.3.1 and 10 (ArcInfo license level).

Answer: 
As of version 10.1 [AlterAliasName()](https://desktop.arcgis.com/en/arcmap/10.3/analyze/arcpy-functions/alteraliasname.htm) can be used to re-alias tables:

```
table = r"C:\path\to\connection.sde\OWNER.TABLE"
arcpy.AlterAliasName(table, "table_alias")

```

As of version 10.3 [Alter Field](http://desktop.arcgis.com/en/arcmap/10.3/tools/data-management-toolbox/alter-field-properties.htm) can be used to re-alias fields:

```
table = r"C:\path\to\connection.sde\OWNER.TABLE"
arcpy.AlterField_management(table, "FIELD_NAME", new_field_alias="field_alias")

```
Another solution [courtesy of Rob Clark](https://gis.stackexchange.com/questions/9020/getting-started-with-arcobjects/9027#9027):

> 
> You could use [featureclass\_to\_featureclass](http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//001200000020000000) with field mapping. Yes it
>  creates another feature class but you could just have an output area
>  to copy data and change aliases whilst it's doing it.
> 
> 
> 

[![FC to FC dialog with Properties open (from context menu)](https://i.imgur.com/QfXR9.png)](https://i.stack.imgur.com/4lybf.png)

In python the syntax for the `field_map` part is tricky so go through it once interactively to set the parameters straight, let it run. Then go to [results window](http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//002100000013000000.htm), r-click and *Copy python snippet*. Here is a snippet re-combined into something a little easier to extend and re-use (more work could be done to break apart the pieces of the field map and properties):

```
inFC = 'e:/Canvec/fix.gdb/HD_1480009_2'
outFC = 'HD_with_aliases'
out_wspace = 'e:/canvec/fix.gdb'
where_clause = '#'      # use default
config_keyword = '#'    #    "

# build field map
fmap_out_att = 'CODE /\Specification code/\ '  # field and alias name
fmap_properties = 'true true false 4 Long 0 0 ,First,#,'  # field properties
fmap_in_att = 'e:/Canvec/fix.gdb/HD_1480009_2,CODE,-1,-1'  # input FC and field

# construct the complete field map
field_map = fmap_out_att + fmap_properties + fmap_in_att
   # results in:
   # "CODE /\Specification code/\ true true false 4 Long 0 0 ,First,#,e:/Canvec/fix.gdb/HD_1480009_2,CODE,-1,-1"

arcpy.FeatureClassToFeatureClass_conversion(inFC, out_wspace, outFC, 
        where_clause, field_map, config_keyword)

# the template command copied from Results window, used for building above
# arcpy.FeatureClassToFeatureClass_conversion("e:/Canvec/fix.gdb/HD_1480009_2","e:/canvec/fix.gdb","HD_with_aliases3","#","CODE /\Specification code/\ true true false 4 Long 0 0 ,First,#,e:/Canvec/fix.gdb/HD_1480009_2,CODE,-1,-1","#")

```