If you have production CRM environment and development/test/UAT environment(s), you have probably encountered a situation where you may need to create fields manually separately in both environments. If you do this and then later import a solution from Test to Production, you may see an error in the solution import claiming that field with the specified name already exists, or that 'Column names in each table must be unique. Column name x in table yy is specified more than once.'
This is usually result of schema of the field being different. It could be string in one CRM and option set in another. A trickier problem is when the schema name of the field differs by capitalization, for example po_testfield and po_TestField. Capitalization is ignored when checking if the field already exists, but for some reason it is not accepted as same field and be updated with new metadata.
Example
Here are two screenshots of same field in two different CRMs. Even if the name of the field is same for both 'po_testfield', the schema name is different for 'po_testfield' vs 'po_TestField'. Importing a solution containing this field will result in above error.


Solution
To fix this issue, delete the field in test and recreate it with matching schema name. After that, the field should be recognized as a same field and will not result in error in the subsequent imports.
More information regarding best practices of CRM 2011 solutions can be found in the following blogs:
And of course, if you are still experiencing issues or have additional questions, you can always reach out to the CRM experts at PowerObjects!
Happy CRM'ing!