Anledningen till att tillvägagångssättet som Adam föreslog inte kommer att fungera är att under den tid som du loopar över de aktiva anslutningarna kan en ny upprättas, och du kommer att missa dem. Du kan istället använda följande tillvägagångssätt som inte har denna nackdel:
-- 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