Como borrar un archivo NDF de una base en SQL Server 2005

Como borrar un archivo NDF de una base en SQL Server 2005

Es fácil, más bien una papa, en dos pasitos sin mas ni mas. La cosa mas curiosa es que es mas mejor usar el Logical Name del archivo en lugar del Path físico del mismo.

Antes que nada, sacamos a todos de la base con:

ALTER DATABASE [YourDbName] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO

Esto dispara un Rollback a todo que sea necesario y nos deja la base en modo monousuario para poder trabajar con tranquilidad.

De mas esta decir que no es recomendable hacerlo en producción directamente.

Entonces, lo primero que hacemos es vaciar el archivo, esto solo funciona si no hay transacciones pendientes en él. Basta con un SHRINK con EMPTYFILE así:

DBCC SHRINKFILE ([LogicalName], EMPTYFILE )
GO

Puede demorar bastante, dependiendo del equipo y el tamaño del NDF.

Después, lo pasamos a mejor vida, alterando la base con la indicación de remoción del archivo:

ALTER DATABASE [YourDbName] REMOVE FILE [LogicalName]
GO

Y claro, cuando terminen, no se olviden de habilitar el acceso a la base a los demas usuarios ;P

ALTER DATABASE Warehouse SET MULTI_USER

Ahora sí, listo!