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")

```
This solution is for user that use SQL server as geodatabase.
you can manually change it by an SQL update command. all feature's name save in [sde].[GDB\_OBJECTCLASSES] table. the alias name set simply if you change the alias column value .

```
UPDATE [sde].[sde].[GDB_OBJECTCLASSES] 
SET AliasName = 'an alias name' 
WHERE Name='your feature class name'

```

EDIT:
this method is fast method for changing the alias name . but using IClassSchemaEdit is better because in sql update method you can't use alias name until reset feature workspace.

```
Public Sub SetAliasName(FeatureClass As IFeatureClass, AliasName As String)
        Dim abjTable As ITable = FeatureClass
        Dim objClass As IObjectClass = abjTable
        Dim edit As IClassSchemaEdit = objClass
        edit.AlterAliasName(AliasName)
End Sub

```