La raison pour laquelle l'approche suggérée par Adam ne fonctionnera pas est que pendant le temps que vous bouclez sur les connexions actives, une nouvelle peut être établie, et vous les manquerez. Vous pouvez à la place utiliser l'approche suivante qui n'a pas cet inconvénient :
-- 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