Attribute Table fields name keep changing after an export

When you join and then export, the new feature class takes the original field names in the original feature class, but for any fields that were joined the name will be altered - before the export you'll see tablename.fieldname that tells you where that field came from. When you export, particularly to shapefile, it may add numbers to the end of the field name to avoid having two fields with the same name (most obviously your join field - don't want two 'TractID' fields and not know which came from where), and if the name is too long it will be truncated.

One way to avoid this is (theoretically) to use the Join Field tool. This basically does the join/export in a single step, or more accurately just adds the joined fields directly to the original (so keep in mind it does directly modify the original, the only undo you get is deleting all the fields you just added).

/r/gis Thread