Compartir a través de


Mover una base de datos mediante separar y adjuntar (Transact-SQL)

Se aplica a: SQL Server

En este tema se describe cómo mover una base de datos separada a otra ubicación y volver a adjuntarla a la misma instancia de servidor o a otra en SQL Server. No obstante, se recomienda mover las bases de datos mediante el procedimiento de reubicación programada ALTER DATABASE, en lugar usar las operaciones de separar y adjuntar. Para más información, consulte Move User Databases.

Importante

Se recomienda no adjuntar ni restaurar bases de datos de orígenes desconocidos o que no sean de confianza. Es posible que dichas bases de datos contengan código malintencionado que podría ejecutar código de Transact-SQL no deseado o provocar errores al modificar el esquema o la estructura de la base de datos física. Para usar una base de datos desde un origen desconocido o que no sea de confianza, ejecute DBCC CHECKDB en la base de datos de un servidor que no sea de producción y examine también el código, como procedimientos almacenados u otro código definido por el usuario, en la base de datos.

Procedimiento

Para mover una base de datos mediante la operación de separar y adjuntar

  1. Separe la base de datos. Para obtener más información, vea Separar una base de datos

  2. En el Explorador de Windows o en una ventana del símbolo del sistema de Windows, mueva el archivo o archivos de la base de datos separada y el archivo o archivos de registro a la nueva ubicación.

    Debe mover los archivos de registro, incluso si piensa crear nuevos archivos de registro. En algunos casos, para volver a adjuntar una base de datos son necesarios sus archivos de registro. Por tanto, mantenga siempre todos los archivos de registro separados hasta que la base de datos se haya adjuntado correctamente sin ellos.

    Nota:

    Si intenta adjuntar la base de datos sin especificar el archivo de registro, la operación de adjuntar buscará el archivo de registro en su ubicación original. Si aún hay una copia del registro en la ubicación original, se adjunta esa copia. Para evitar que se utilice el archivo de registro original, especifique la ruta de acceso del nuevo archivo de registro o elimine la copia original del archivo de registro (después de copiarlo en la nueva ubicación).

  3. Adjunte los archivos copiados. Para obtener más información, consulte Attach a Database.

Ejemplo

En el siguiente ejemplo se crea una copia de la base de datos de AdventureWorks2022 denominada MyAdventureWorks. Las instrucciones de Transact-SQL se ejecutan en una ventana del editor de consultas que esté conectada a la instancia del servidor a la que se ha adjuntado.

  1. Separe la base de datos AdventureWorks2022 al ejecutar las siguientes instrucciones de Transact-SQL:

    USE master;  
    GO  
    EXEC sp_detach_db @dbname = N'AdventureWorks2022';  
    GO  
    
  2. Mediante el método que elija, copie los archivos de la base de datos (AdventureWorks208R2_Data.mdf y AdventureWorks208R2_log) a: C:\MySQLServer\AdventureWorks208R2_Data.mdf y C:\MySQLServer\AdventureWorks208R2_Log.ldf, respectivamente.

    Importante

    En el caso de una base de datos de producción, coloque la base de datos y el registro de transacciones en discos independientes.

    Para copiar archivos a través de la red en un disco de un equipo remoto, use el nombre UNC (Convención de nomenclatura universal) de la ubicación remota. Un nombre UNC toma la forma \\nombreDeServidor\nombreDelRecursoCompartido\rutaDeAcceso\nombreDeArchivo. De la misma forma que al escribir archivos en el disco duro local, se debe conceder a la cuenta de usuario que usa la instancia de SQL Server los permisos necesarios para leer o escribir en archivos del disco remoto.

  3. Adjunte la base de datos movida y, opcionalmente, su registro ejecutando las siguientes instrucciones de Transact-SQL:

    USE master;  
    GO  
    CREATE DATABASE MyAdventureWorks   
        ON (FILENAME = 'C:\MySQLServer\AdventureWorks2022_Data.mdf'),  
        (FILENAME = 'C:\MySQLServer\AdventureWorks2022_Log.ldf')  
        FOR ATTACH;  
    GO  
    

    En SQL Server Management Studio, una base de datos recién adjuntada no es inmediatamente visible en el Explorador de objetos. Para ver la base de datos, en el Explorador de objetos, haga clic en Ver y, a continuación, en Actualizar. Cuando se expande el nodo Bases de datos en el Explorador de objetos, la base de datos recién adjuntada aparecerá en la lista de bases de datos.

Consulte también

Adjuntar y separar bases de datos (SQL Server)