Il motivo per cui l'approccio suggerito da Adam non funzionerà è che durante il ciclo delle connessioni attive se ne possono stabilire di nuove e le mancheranno. Potresti invece utilizzare il seguente approccio che non presenta questo inconveniente:
-- set your current connection to use master otherwise you might get an error
use master
ALTER DATABASE YourDatabase SET SINGLE_USER WITH ROLLBACK IMMEDIATE
--do you stuff here
ALTER DATABASE YourDatabase SET MULTI_USER