El caso es que hoy he tenido que mover los archivos correspondientes a un MS SQL Server 2005 Express, y no he podido hacerlo con mi fórmula de siempre. Así que me he buscado un poco la vida... y ningún problema.
Esto es lo que he hecho (desde la misma consola del SQL)
[ bbdd es la base de datos que quería mover, C:\xxx la localización inicial y D:\xxx la final ]
Primero desconecto la base de datos...
use master
go
sp_detach_db 'bbdd'
go
go
sp_detach_db 'bbdd'
go
Ejecuto. Todo bien, me devuelve un mensaje según el cual se ha hecho bien. Después lo que hago es mover los archivos .mdf y .ldf a su nueva ubicación. Una vez estén copiados, simplemente vuelvo a conectar la base de datos pero diciéndole qué archivos utilizar. Lo hago así:
use master
go
sp_attach_db 'mydb','C:\xxx\bbdd.mdf','D:\xxx\bbdd.ldf'
go
go
sp_attach_db 'mydb','C:\xxx\bbdd.mdf','D:\xxx\bbdd.ldf'
go
Ejecuto. La base de datos vuelve a estar online y disponible, y con muuuuucho espacio para crecer. Como último, si quiero comprobar que estos son los valores correctos y no los anteriores, hago una consulta de estado para la base de datos; lo hago ejecutando:
use bbdd
go
sp_helpfile
go
go
sp_helpfile
go
Como respuesta, la última consulta me devuelve cuáles son los archivos de datos y de log de la tabla consultada, y, en efecto, están apuntando a la nueva localización. La verdad es que es fácil y rápido, efectivo, y bastante elegante. No se puede pedir más.
Ah, bueno, y las versiones. Por lo que he visto, sirve para cualquier MS SQL Server, pero podréis encontrar más información en la página oficial de MS:
http://support.microsoft.com/kb/224071
Ale, que vaya bien!