What is the Script to move a Base data already CReada in SQL server 2008 R2?

0

Good day afternoons or evenings. I have a BATABASE already created in manager studio of SQL server 2008 R2, I want to move the BASEDATA (extention files .mdf and .ldf) the question is Is there a MOVE script that moves me to a new physical location of those extensions? which is on the hard drive C location X I want to move it to the hard drive D: \ BATABASE * .mdf and * .ldf

    
asked by Juan Carlos Villamizar Alvarez 16.08.2018 в 04:46
source

1 answer

1

Juan Carlos, just this topic I have to address in a job.

As you know SQL allows the execution of cmd commands. With the command that you previously named you can move a database from one route to another, then you must tell the database engine what the new address is.

I have attached a script that has served me for this 100%

-- Mostramos las rutas actuales de la base de datos.

USE master SELECT name, physical_name FROM sys.master_files

-- Tomamos nota de los datos de la BD que queremos mover, por ejemplo:
--
-- SYSADMIT-DB         C:\test\SYSADMIT-DB.mdf
-- SYSADMIT-DB_log     C:\test\SYSADMIT-DB_log.ldf
--
-- Siendo la primera columna el nombre lógico de la base de datos y
-- la segunda columna la ruta física
--

GO

-- Situamos la base de datos a offline, haciendo el rollback inmediato de 
-- todas las transacciones abiertas.

ALTER DATABASE "SYSADMIT-DB" SET offline WITH ROLLBACK IMMEDIATE;

GO

-- Procedemos a mover los ficheros, por ejemplo desde CMD con el comando move.
-- Abrimos una ventana de CMD y ejecutamos:
--

md "D:\MSSQLData"
Move "C:\test\SYSADMIT-DB.mdf" "D:\MSSQLData\SYSADMIT-DB_Data.mdf"
Move "C:\test\SYSADMIT-DB_log.ldf" "D:\MSSQLData\SYSADMIT-DB_log.ldf"


-- Modificamos la ruta del MDF de la base de datos.
-- El nombre lógico de la base de datos está obtenido después de la ejecución 
-- del primer comando.

ALTER DATABASE "SYSADMIT-DB" MODIFY FILE ( NAME = "SYSADMIT-DB", FILENAME = "D:\MSSQLData\SYSADMIT-DB_Data.mdf")

GO

-- Modificamos la ruta del LDF de la base de datos.
-- El nombre de la base de datos está obtenido después de la ejecución del primer comando.

ALTER DATABASE "SYSADMIT-DB" MODIFY FILE ( NAME = "SYSADMIT-DB_Log", FILENAME = "D:\MSSQLData\SYSADMIT-DB_Log.ldf")

GO

-- Situamos la base de datos online.

ALTER DATABASE "SYSADMIT-DB" SET online

GO

-- Mostramos las rutas actuales de las base de datos

USE master SELECT name, physical_name FROM sys.master_files

If I have any questions, I am available.

Greetings

Ignacio Loyte

    
answered by 16.08.2018 в 05:29