Personally, what I tend to do in this scenario, is set a job to run overnght using SQL Server Agent.
Rather than making alterations to SQL also, if all users are coming from a sole source (i.e. a web front end) then why not just take down the site temporarily while the work is being carried out?
You can also build steps into an Agent Job Script, which incorporates cmdexec commands to stop and start the web services before and after the job has completed...
If you're confident in the job and have rough times from testing, then it will save you having to babysit the job (set email alerts for failures).