If you want to clean out a table inside a transaction, truncate is the fastest option. If you do not need a transaction and you system can survive the table temporarily disappearing, then you can use the drop/create combo. Most systems do not like this brief table disappearing act, hence why I would recommend truncate as the goto solution. You can also use a delete statement without a where clause, but since that logs the individual row deletes, the database has to work harder and it is therefore slower than truncate.
But in you specific case I would recommend the insert/update solution discussed extensively in this thread.
But in you specific case I would recommend the insert/update solution discussed extensively in this thread.