If a feature class does not have an assigned alias, ArcGIS uses the feature class name as the alias on-the-fly. When the feature class is transferred from a file geodatabase to an enterprise geodatabase, the alias also changes to reflect the fully qualified feature class name in the database (<database>.<schema>.<feature_class>). This may look like the feature class alias is not preserved during the transfer.
The feature class (or table) alias is the alternative name of a feature class. It is the name displayed when a feature class is added to the map in ArcGIS clients. When creating a feature class, an alias can be assigned to the feature class, which becomes a property of the feature class. If an alias is not specified, ArcGIS uses the feature class name as the alias on-the-fly. The Describe ArcPy function can be used to check the alias name of a feature class:
desc = arcpy.Describe(<feature_class>) print ("AliasName:", desc.aliasName)
If a feature class does not have an assigned alias, desc.aliasName returns a blank field. The alias in the feature class properties window is what ArcGIS generates on-the-fly for the feature class to use when added to a map. In a file geodatabase, the 'on-the-fly' alias looks identical to the feature class name. In an enterprise geodatabase, the feature class name is fully qualified with the database (except Oracle) and with the schema name appended in front of the actual feature class name. The on-the-fly alias reflects the fully qualified name too. As a result, when transferring a feature class which utilizes an on-the-fly alias, it appears that the actual feature class alias is not preserved, however, in fact the feature class does not have a specified alias and the on-the-fly alias just stays in sync with the feature class name.
Use one of the following options to resolve the issue: