A razão pela qual a abordagem sugerida por Adam não funcionará é que durante o tempo em que você estiver fazendo um loop sobre as conexões ativas, uma nova poderá ser estabelecida, e você sentirá falta delas. Em vez disso, você pode usar a seguinte abordagem que não tem essa desvantagem:
-- 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