Separación de una base de datos

Se aplica a:SQL Server

Este artículo describe cómo separar una base de datos en SQL Server con SQL Server Management Studio o Transact-SQL. Los archivos separados no se eliminan y permanecen en el sistema de archivos. Los archivos se pueden volver a adjuntar mediante las opciones CREATE DATABASE ... FOR ATTACH o FOR ATTACH_REBUILD_LOG. Los archivos también se pueden mover a otro servidor y adjuntarse a una instancia con la misma versión o una versión más reciente.

Limitaciones

Para obtener una lista de las limitaciones y restricciones, consulta Adjuntar y separar bases de datos (SQL Server).

Permisos

Requiere pertenencia al rol fijo de base de datos db_owner.

Uso de SQL Server Management Studio

Antes de mover una base de datos

Si vas a mover una base de datos, antes de separarla de su instancia de SQL Server existente, usa la página Propiedades de la base de datos para revisar los archivos asociados a la base de datos y sus ubicaciones actuales.

  1. En el Explorador de objetos de SQL Server Management Studio, conéctese a la instancia del motor de base de datos de SQL Server y, a continuación, expanda la instancia.

  2. Expanda Bases de datosy seleccione el nombre de la base de datos de usuarios que desee separar.

  3. Haga clic con el botón derecho en la base de datos y seleccione Propiedades. Seleccione la página Archivos y revise las entradas de la tabla Archivos de base de datos:.

Asegúrese de tener en cuenta todos los archivos asociados a la base de datos antes de separar, mover y adjuntar. Después, continúe con los pasos de separación de la sección siguiente. Para obtener más información sobre cómo adjuntar la base de datos en su nueva ubicación, consulte Adjuntar una base de datos.

Separación de una base de datos

  1. En el Explorador de objetos de SQL Server Management Studio, conéctese a la instancia del motor de base de datos de SQL Server y, a continuación, expanda la instancia.

  2. Expanda Bases de datosy seleccione el nombre de la base de datos de usuarios que desee separar.

  3. Haga clic con el botón derecho en el nombre de la base de datos, seleccione Tareasy seleccione Separar. Aparecerá el cuadro de diálogo Separar base de datos .

    • Bases de datos que se van a separar: enumera las bases de datos que se van a separar.

    • Database Name: muestra el nombre de la base de datos que se va a separar.

    • Quitar conexiones: desconecta las conexiones a la base de datos especificada.

      Nota:

      No puede separar una base de datos con conexiones activas.

    • Actualizar estadísticas: de forma predeterminada, la operación de separación conserva las estadísticas de optimización obsoletas al separar la base de datos; para actualizar las estadísticas de optimización existentes, selecciona esta casilla.

    • Conservar catálogos de texto completo: de forma predeterminada, la operación de separación conserva los catálogos de texto completo asociados a la base de datos. Para quitarlos, desactive la casilla Mantener catálogos de texto completo . Esta opción solo aparece cuando se está actualizando una base de datos desde SQL Server 2005 (9.x).

    • Estado: muestra uno de los siguientes estados: Listo o No está listo.

    • Mensaje: la columna Mensaje puede mostrar información sobre la base de datos, tal como se indica a continuación:

      • Cuando una base de datos está implicada en una replicación, el Estado es No está listo y la columna Mensaje muestra Base de datos replicada.

      • Cuando una base de datos tiene una o varias conexiones activas, el valor de Estado es No está listo y en la columna Mensaje se muestra <number_of_active_connections>Conexiones activas. Por ejemplo: 1 Conexiones activas. Antes de separar la base de datos, debe desconectar todas las conexiones activas seleccionando Quitar conexiones.

      Para obtener más información acerca de un mensaje, seleccione el texto con hipervínculo para abrir el Monitor de actividad.

  4. Cuando estés listo para separar la base de datos, selecciona Aceptar.

Nota:

La base de datos recién separada permanecerá visible en el nodo Bases de datos del Explorador de objetos hasta que se actualice la vista. Puedes actualizar la vista en cualquier momento si vas al panel del Explorador de objetos, seleccionas a continuación en la barra de menús Ver y, por último, Actualizar.

Uso de Transact-SQL

Antes de mover una base de datos

Si vas a mover una base de datos, antes de separarla de su instancia de SQL Server existente, usa la vista de catálogo del sistema sys.database_files para revisar los archivos asociados a la base de datos y sus ubicaciones actuales. Para obtener más información, consulte sys.database_files (Transact-SQL).

  1. En SQL Server Management Studio, seleccione Nueva consulta para abrir el Editor de Power Query.

  2. Copie el siguiente script de Transact-SQL en el Editor de Power Query y, a continuación, seleccione Ejecutar. Este script muestra la ubicación de los archivos de base de datos físicos. Asegúrese de tener en cuenta todos los archivos al mover la base de datos mediante separación y asociación.

    USE [database_name]
    GO
    
    SELECT type_desc, name, physical_name
    FROM sys.database_files;
    

Asegúrese de tener en cuenta todos los archivos asociados a la base de datos antes de separar, mover y adjuntar. Después, continúe con los pasos de separación de la sección siguiente. Para obtener más información sobre cómo adjuntar la base de datos en su nueva ubicación, consulte Adjuntar una base de datos.

Separación de una base de datos

  1. Conéctese con el Motor de base de datos.

  2. En la barra Estándar, seleccione Nueva consulta.

  3. Copie y pegue el ejemplo siguiente en la ventana de consulta y seleccione Ejecutar. En este ejemplo se separa la base de datos AdventureWorks2022 con la opción skipchecks establecida en true. Para obtener más información, consulte sp_detach_db.

    EXEC sp_detach_db 'AdventureWorks2022', 'true';