• To keep the table from being accessed, well, it really depends a lot on your system, the configuration etc. If you do not have SA or DBO for all your logins (a depressingly common situation), simply revoke access to that table while doing your load (although, you do know that's going to cause the potential for headaches). An alternative would be to load everything to another table and then merge into your active table. Or, load to another table with a different name, then swap out the names. Or, change the load process so that it doesn't simply delete everything and then reload everything (seems a little sketchy). Of course people querying are going to see data going away, it's what you're doing after all.

    "The credit belongs to the man who is actually in the arena, whose face is marred by dust and sweat and blood"
    - Theodore Roosevelt

    Author of:
    SQL Server Execution Plans
    SQL Server Query Performance Tuning