Borrar con conexiones abiertas

28/09/2006 - 17:47 por aydai | Informe spam
Hola a todos!!!
Es posible borrar una base de datos aunque haya conexiones abiertas???
desde un comando sql

Gracias.

Preguntas similare

Leer las respuestas

#6 aydai
04/10/2006 - 11:25 | Informe spam
Muchas gracias a los dos
"SoftJaén" escribió en el mensaje
news:%
"Jesús López" escribió:

Si has recibido el error "El Id de proceso XX no está activo" es porque
seguramente te has suicidado, te has matado a ti mismo y por lo tanto no
puedes ejecutar DROP DATABASE.



Jesús, llevas razón. Creo que me he "suicidado", porque desde el mismo
proyecto de Visual Basic. net, estaba utilizando dos objetos SqlConnection
distintos, aunque ambos tenían la misma cadena de conexión, es decir,
apuntaban a la misma base. Primero mataba el proceso, y con la misma
conexión a la base de datos X, trataba de eliminarla, de ahí que recibiera
la excepción comentada.

Para eliminar una base de datos X, te conectas a master, no a X, matas
todas las conexiones con X y después ejecutas DROP DATABASE X.



Así es. Ahora, lo que he hecho es abrir una conexión con la base de datos
X en el proyecto de Visual Basic, el cual lo he dejado ejecutándose, y
desde el Analizador de consultas he obtenido el Id. del proceso:

USE master
GO

SELECT spid, status, program_name
FROM sysprocesses
WHERE program_name like '.Net SqlClient%'
GO

Una vez obtenido el Id del proceso, he ejecutado una nueva consulta:

USE master
GO

KILL 54
GO

DROP DATABASE X
GO

Y, efectivamente, una vez matado el proceso se ha podido eliminar
físicamente la base de datos, aunque supuestamente, la conexión sigue
abierta en el proyecto de Visual Basic que aún continúa ejecutándose, ya
que
la variable objeto SqlConnection la tengo declarada a nivel de la propia
clase Form.

MessageBox.Show(cnn.State.ToString) ' --> Open

Viendo el resultado de la propiedad «State», lo primero que se me viene a
la
cabeza es que no te puedes "fiar ni un pelo" de dicho valor, porque si
alguien o algo ha matado el proceso, y encima ha eliminado la base de
datos,
cuando se desee ejecutar una consulta de selección o acción, ¿me imagino
que
se obtendrá la oportuna excepción? :-(

Gracias por la aclaración.

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado
o
sugerido en el presente mensaje.





email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida