La razón por la que el enfoque que Adam sugirió no funcionará es que durante el tiempo que está recorriendo las conexiones activas se puede establecer una nueva y las perderá. En su lugar, podría utilizar el siguiente enfoque que no tiene este 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