Der Grund, warum der von Adam vorgeschlagene Ansatz nicht funktioniert, ist, dass während der Zeit, in der Sie die aktiven Verbindungen durchlaufen, neue hergestellt werden können und Sie diese verpassen werden. Sie könnten stattdessen den folgenden Ansatz verwenden, der diesen Nachteil nicht hat:
-- 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