5

Tengo un instalador que como parte de la instalación crea una base de datos SQL Server 2000 (y superior).Crear error de base de datos: no se puede crear el archivo

Algunos usuarios cambian el servidor de base de datos, separan la base de datos, ... y desean reinstalar.

Si el archivo existe en la ubicación predeterminada me sale el siguiente error:

Cannot create file 'C:\Program Files\Microsoft SQL Server...\DATA\mydatabase.mdf' because it already exists.

puedo solucionar esto comprobando la ruta predeterminada primero y borrar los archivos. Pero, ¿cómo puedo hacer esto cuando el usuario se instala en un servidor SQL remoto?

Busco algo como:

CREATE DATABASE mydatabase WITH OVERWRITE 

Editar:

base de datos de gota no es la solución. La base de datos no existe pero los archivos aún están allí.

Respuesta

1

Usted puede probar si existe la base de datos con sys.sysdatabase como esto

IF EXISTS (SELECT * FROM sys.sysdatabases WHERE NAME = 'mydatabase') 
BEGIN 
    DROP DATABASE mydatabase 
END 

Si desea probar si un archivo específico se une al servidor SQL ya, también puede utilizar la vista del sistema sys. sysdatabases ya que contiene el atributo 'filename' que contiene el archivo mdf para todas las bases de datos.

Si el archivo está adjunto a una base de datos diferente, creo que es arriesgado sobrescribirlo, y probablemente debería eliminar la base de datos adjunta al archivo. Al abandonar la base de datos se eliminará el archivo subyacente.

Si el archivo existe pero no está conectado al servidor sql, probablemente debería eliminarlo una vez y asegurarse de que las gotas estén borrando archivos en las eliminaciones posteriores.

+3

¡La base de datos no existe pero los archivos siguen ahí! – WilfriedVS

+0

Ok, eso es otro problema :) Pero si los archivos existen sin estar conectados a la instancia del servidor SQL, ¿no sería más limpio que el instalador realice la eliminación? - Y si existen, pero están conectados a otro DB probablemente no desea sobrescribirlos. – faester

+0

Esa es la idea: si el instalador se ejecuta en una máquina local, puedo eliminar los archivos antes de crear la base de datos. Pero, ¿cómo hago esto cuando el usuario se instala en un servidor SQL remoto? – WilfriedVS

-1

que utilizan SQL Management Studio

Object Explore > choose instance > Right click at DataBase Folder > Restore Database

En la sección Fuente seleccione "Dispositivo" y seleccione el archivo .mdf desea eliminar (elija como extensión. * Todos los archivos)

Por lo tanto, obtuve la nueva base de datos con el viejo archivo MDF.

A continuación, colóquelo de la manera correcta, el .mdf desaparecerá.

aplausos.

0

Ahora es 2018 y Life y Windows han cambiado.

por lo que necesitamos un nuevo procedimiento para deshacerse del MDF presentar

  • La base de datos no está en Microsoft SQL Server.
  • intentar eliminar mediante programación no elimina los archivos porque la base de datos no existe
  • No es posible eliminar el MDF en un explorador de archivos, ya que "es en SQL Server utiliza"
  • I' He intentado utilizar Management Studio para restaurar la base de datos y luego eliminarla, tal como sugirió TajMahals, por desgracia, no funcionó.

La forma correcta de eliminar el archivo sería detener el servidor SQL, eliminar el archivo con un explorador de archivos y luego volver a iniciar el servidor.

Ver Start, Stop, Pause, Resume, Restart SQL Server Services

  • El uso de un explorador de archivos Ir a la carpeta ** C: \ Windows \ SysWOW64 **
  • encontrar el archivo SQLServerManager13.msc El número 13 puede ser diferente dependiendo de la versión
  • Iniciar el programa
  • En el panel izquierdo de la ventana de selección de Servicios SQL Server
  • En el panel de la ventana derecha verá SQL Server, y probablemente el agente y el navegador
  • Detenga en el siguiente orden: navegador, agente, servidor. Para ello, la derecha haga clic en el elemento que desea detener y seleccione Detener
  • Usando el explorador de archivos borrar el archivo MDF que causa el problema
  • Inicie los servicios en orden inverso

Y ya está

Cuestiones relacionadas