jueves, 19 de febrero de 2015

Mover los archivos de base de datos de SQL Server a otra ubicación vía T-SQL.

SQL Server 2000

-- Cambiar al contexto de la base de datos master
USE MASTER;
GO

-- Llevar la base de datos a single user mode
-- Esto termina todas las conexiones a la base de datos
ALTER DATABASE dbTest SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO

-- Desacoplar la base de datos
EXEC MASTER.dbo.sp_detach_db @dbname = N'dbTest'
GO

--
-- Mover el o los archivos físicos de la base de datos manualmente a la nueva ruta.
-- ej.: x:\move e:\dbTest.mdf e:\NuevaRuta\dbTest.mdf
--

-- Re-acoplar la base de datos
CREATE DATABASE [TestDB] ON
(FILENAME = N'E:\RutaNueva\dbTest.mdf' ),
(
FILENAME = N'E:\RutaNueva\dbTest_log.ldf' )
FOR ATTACH
GO

SQL Server 2005, 2008, 2008 R2 o superior (Misma instancia)

-- Cambiar al contexto de la base de datos master
USE MASTER;
GO

-- Cambiar el estado de la base de datos a modo de usuario único
ALTER DATABASE dbTest SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO

-- Cambiar el estado de la base de datos a fuera de línea
ALTER DATABASE dbtest SET OFFLINE;
GO

--
-- Mover el o los archivos físicos de la base de datos manualmente a la nueva ruta.
-- ej.: x:\move e:\dbTest.mdf e:\NuevaRuta\dbTest.mdf
--

-- Re-apunta la ruta del archivo mdf a la nueva ubicación
ALTER DATABASE dbTest
MODIFY
FILE
  
(NAME='dbTest', FILENAME='E:\NuevaRuta\dbTest.mdf');

-- Re-apunta la ruta del archivo ldf a la nueva ubicación
ALTER DATABASE dbTest
MODIFY
FILE
  
(NAME='dbTest_Log', FILENAME='E:\NuevaRuta\dbTest_log.ldf');
GO

-- Cambiar el estado de la base de datos a en-línea
ALTER DATABASE TEMP SET ONLINE;
GO

-- Cambiar el estado de la base de datos a modo multi-usuario
ALTER DATABASE TEMP SET MULTI_USER;
GO

SQL Server 2005, 2008, 2008 R2 o superior (Instancia diferente)

-- Cambiar al contexto de la base de datos master
USE MASTER;
GO

-- Desacoplar la base de datos
EXEC sp_detach_db @dbname = N'dbTest';

--
-- Mover el o los archivos físicos de la base de datos manualmente a la nueva ruta.
-- ej.: x:\move e:\dbTest.mdf e:\NuevaRuta\dbTest.mdf
--

-- Reacoplar la base de datos con los archivos en la nueva instancia y nueva ubicación
CREATE DATABASE dbTest
      
ON(NAME='dbTest',
            
FILENAME='e:\NuevaRuta\dbTest.mdf')
      
LOG ON(NAME='MyDatabase_Log',
            
FILENAME='e:\NuevaRuta\dbTest_log.ldf')
      
FOR ATTACH
      
WITH ENABLE_BROKER;
GO

Referencias

No hay comentarios:

Publicar un comentario