BTEQ is the Query Submitting utility, - using this we can execute all kind of query (selecting, inserting, updating, deleting, collecting statistics, granting and revoking access to any onjects etc.,) - also we can perform some formatting on extracted (select) data to generate reports
MLOAD is the Loading utility, - using this we can only insert, update or delete data in the table. Though we can perform this operation using BTEQ, performance wise it is good to use MLOAD while loading huge data. BTEQ will do well for loading less amount of data (few hundred rows)
In MLoad, ErrorTable1 - capture the error found during acquisition phase, also called ET table or Acquisition Phase Error table ErrorTable2 - capture the error found during application phase, also called UV table or Application Phase Error table
In FLoad, ErrorTable1 - capture any format error in the data ErrorTable2 - capture any uniqueness violation in the data
Functionally I do not see any difference in error tables in MLoad and FLoad. I request forum gurus to throw some more light on this.
You can execute standard SQL statements from BTEQ that perform many of the same bulk operations that you could do with MultiLoad, with excellent performance, though you need to be using Teradata 12.0 or later to get the most benefit. In particular, look up the MERGE statement the SQL manual. Note that it has an error logging option (a Teradata extension to the ANSI/ISO syntax), similar to FastLoad and MultiLoad. MERGE is often significantly faster than MultiLoad.