Simply put: As of Eureka Patch 5, deleting tables does NOT transfer in Update Sets, so be prepared.
Steps to delete an existing custom table:
1. While developing in Dev:
Open up the dictionary record of the table.
Click the Delete UI Action.
Type “delete” in the box.
2. When pushing your update sets to each environment:
Commit your update sets
Open up the dictionary record of the table.
Click the Delete UI Action.
Type “delete” in the box.
What about Many to Many tables I create from sys_m2m?
Delete these the same way as a regular table. You cannot delete them from the sys_m2m list view, you have to delete them from the dictionary record.
NOTE: This leaves the sys_m2m records still on the sys_m2m table. There is no way to delete these records without modifying the ACLs that have that table locked down.
Do I need to do this if I create and then delete a table right away in the Dev instance?
From my findings so far, NO. If the table does not yet exist in your QA & Prod, and you’ve changed your mind about needing the table, and delete it in the same update set, that table should never end up getting created in Production, so you should be just fine.