Siempre uso lo siguiente:
USE master; -- get out of dbname myself
GO
-- kick all other users out:
ALTER DATABASE [dbname] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO
-- prevent sessions from re-establishing connection:
ALTER DATABASE [dbname] SET OFFLINE;
A veces esto puede llevar un tiempo, y a veces está bloqueado porque usted es el que lo ejecuta, y usted tiene una conexión activa a la base de datos . Busque otras ventanas de consulta que puedan tener el mismo contexto de base de datos; esto puede incluir diálogos abiertos, Object Explorer, IntelliSense, trabajos de larga duración, etc.
Cuando termine de hacer mis cambios en la configuración de esa base de datos, simplemente:
ALTER DATABASE [dbname] SET ONLINE;
ALTER DATABASE [dbname] SET MULTI_USER;
Aunque, a veces, lo que necesito hacer con esa base de datos requiere que la base de datos esté en línea, por lo que a veces tengo que dejarla en modo de usuario único y hacer esto:
ALTER DATABASE [dbname] SET ONLINE;
GO
USE [dbname];
Ahora puedo hacer mis cambios y, cuando esté listo para que otros usuarios se conecten, simplemente:
ALTER DATABASE [dbname] SET MULTI_USER;