¿Cómo eliminar las sesiones o conexiones sobre una Base de datos en SQL Server?

Cuando deseamos eliminar una base de datos algunas veces Sql Server no nos lo permite ya que la base de datos está siendo utilizada. Esto puede ser por sistemas que no cierran la conexión o procesos que están conectándose las 24 horas del día.

Para eliminar las conexiones, primero debemos saber cuáles son, y para ello puedes ejecutar la siguiente consulta, remplazando el nombre de tu base de datos en la instrucción Where.


SELECT   *
FROM     sys.dm_exec_sessions
WHERE    DB_NAME(database_id) = 'Nombre_De_Tu_BaseDeDatos'

Una vez que hemos obtenido algo parecido a la siguiente lista:

Debemos ejecutar la función Kill seguida del número de la sesión (el primer campo de la imagen) a eliminar:


KILL 97

Y listo, de esa manera se elimina un proceso que nunca fue cerrado.

¿Cómo verificar automáticamente si existe la sesión web en un desarrollo web? C# .Net

En este video describo cómo es posible estar verificando si el usuario sigue teniendo la sesión en un sistema web.

Muchas veces nuestra sesión ha terminado por inactividad, y esta logística te servirá para tomar una decisión, si mandar al usuario a la pantalla de autentificación o simplemente mostrarle un mensaje de que su sesión expiro.

Ahora ya podrás ser capaz de detectar si la sesión ha terminado sin necesidad de que el usuario se entere hasta que de clic en algún elemento de tu pagina.

Descargar ejemplo