Hot Swapping Sql Server Databases
Introduce a third database and use synonyms. For each table (I'll call it dbo.MyTable for this example), it looks something like this:


Point the synonym in the "shell" database to the version in the "live" database. So create synonym shell.dbo.MyTable for live.dbo.MyTable.
Do your most nasty data load in the "load" database
When you're ready to cut over, drop and recreate the synonym from step 1: drop synonym shell.dbo.MyTable; create synonym shell.dbo.MyTable for load.dbo.MyTable


You've effectively swapped your live and load databases and the application is none the wiser.