Tengo un problema realmente extraño y molesto. De alguna manera, la instancia de SQL Server 2008 R2 que se ejecuta en nuestro servidor se ha dañado un poco.
Primero, notamos que faltaba la base de datos que creamos ayer. Entonces, miramos a nuestro alrededor y descubrimos que todavía estaba allí, pero separado. Entonces, tratamos de adjuntar el mdf pero recibimos un mensaje que era algo así The file is currently in use
.
Pensé que era extraño, así que reinicié SQL Server. Lo mismo ... bueno, es hora de tomar medidas drásticas ... así que detuve el servicio, comprimí el mdf, comencé el servicio, lo descomprimí y luego intenté restaurarlo. El mensaje anterior desapareció, pero luego obtuve:
No se puede adjuntar una base de datos con el mismo nombre que una base de datos existente
Ay. Por supuesto, no se muestra en el explorador de bases de datos, así que no tengo idea de lo que está pasando ... último recurso:
DROP DATABASE [DatabaseName]
Por supuesto, eso no funcionó ... eso me dice que la base de datos no existe. Entonces, estoy atascado ... en un momento, SQL Server cree que la base de datos existe y en otro punto cree que la base de datos no existe ... obviamente está en un estado de confusión.
¿Alguien ha visto esto antes? ¿Tienes alguna idea sobre cómo solucionarlo?
sys.databases
? Por ejemplo, ¿SELECT * FROM sys.databases
todavía enumera su base de datos?SELECT name, user_access_desc, state_desc FROM sys.databases
revela?Respuestas:
Correcto ... lo descubrí ... algún payaso aquí (que no lo reconocerá) cambió el nombre del db para que su nombre en SSMS sea diferente a los nombres de los archivos mdf y ldf ... y no solo un poco diferente ... . completamente diferente. Jajaja Gracias a todos por sus sugerencias útiles de todos modos.
fuente
Si no tiene permiso para ver la base de datos, estos serían exactamente los síntomas. La base de datos no se mostrará en sus vistas. ¿Está seguro de que no solo eliminó los archivos de una base de datos a la que no tenía acceso? ¿Estás operando como administrador de sistemas?
Actualizar
¿La base de datos estaba desconectada o desconectada ? ¿Cuándo dices de
So, we looked around and found that it was still there, but detached
qué estás hablando exactamente? ¿Dónde miraste, qué encontraste? Identificar que una base de datos fue 'separada' (en lugar de, por ejemplo, descartada) no es trivial.fuente
Consulta sys.databases. Puede ser que la base de datos se haya creado con un espacio al final de su nombre. Ejecute el siguiente código y observe que solo puede crear una de las bases de datos, y no importa cuál cree primero, solo puede crear esa.
fuente
EJECUTE 'DBCC CHECKDB' en master, msdb y la base de datos para ver qué dice. Es posible que deba poner el sistema en modo de usuario único para que dbcc se ejecute en modo de reparación con pérdida de datos. O simplemente restaure sus copias de seguridad de master y msdb según corresponda.
fuente
Para mí, esto se resolvió actualizando las bases de datos. He realizado una recuperación fallida y vi db, que no se pudo eliminar con el mismo mensaje de error: "La base de datos no existe en el servidor".
fuente
Estaba teniendo este mismo problema al usar el servidor SQL 2008r2.
Estaba tratando de duplicar una base de datos (versioning foo) y terminé confundiendo al servidor SQL. SQL Server Management Studio pensó que la base de datos existía (el MDF y el LDF sí existían) pero la base de datos maestra no creía que existiera (no se mostraba en las bases de datos sys).
El truco consistía en cambiar el nombre de los archivos MDF y LDF, luego crear la base de datos desde SQL,
create database [db name here]
luego eliminar la base de datos y finalmente adjuntar los archivos MDF y LDF de antes.fuente