Compartir a través de


Consideraciones sobre la conservación de datos durante las actualizaciones de implementación y esquema

Actualización: noviembre 2007

Antes de sincronizar dos esquemas, debe considerar la configuración de los valores del proyecto de base de datos para minimizar la oportunidad de que sus cambios produzcan la pérdida de datos valiosos. Al configurar esos valores, puede bloquear la sincronización si contiene cambios que probablemente quiten datos de la base de datos de destino. Para obtener más información, vea Cómo: Controlar la pérdida de datos durante la implementación en bases de datos existentes y Cómo: Establecer opciones para comparar esquemas de base de datos.

Sin embargo, este valor puede producir resultados inesperados. En algunas situaciones evita que se implementen los cambios aunque no se perdieran datos valiosos. En otros casos, el valor permite implementar los cambios, aunque SQL Server pueda producir la pérdida de datos cuando se actualiza el destino.

Implementación bloqueada innecesariamente

Si configura los valores del proyecto para ayudar a evitar la pérdida de datos, quizás no pueda sincronizar dos esquemas aunque no se pierdan datos valiosos. Por ejemplo, puede eliminar una columna de datos en un proyecto de base de datos e intentar implementar ese cambio en la base de datos de destino. Aunque haya eliminado la columna de forma intencionada, la implementación se bloqueará para evitar la pérdida de datos en el destino.

Otro ejemplo: la implementación se bloquea si un tipo de datos del origen no se puede comprobar como compatible con el tipo de datos equivalente en el destino. Esta situación puede producirse si el origen o el destino contiene un tipo de datos definido por el usuario o un tipo de Common Language Runtime (CLR). La implementación se bloquea, por ejemplo, si un tipo de datos del origen está definido como char(100) y el tipo de datos del destino está definido como un tipo de datos definido por el usuario como: CREATE TYPE [esquema].[UserDefinedDataType] FROM char(100) NOT NULL.

Si es necesario, puede configurar temporalmente los valores del proyecto para permitir la sincronización después de inspeccionar el script de implementación o de actualización y comprobar que los cambios no producirán la pérdida de datos valiosos.

Pérdida de datos durante la implementación desbloqueada

Aun cuando configure el proyecto de base de datos para ayudar a evitar la pérdida de datos, SQL Server puede, en algunos casos, producir la pérdida de datos durante la ejecución de la sincronización. Antes de sincronizar dos esquemas, debe inspeccionar el script de implementación o de actualización por si contiene lo siguiente:

  • Cambios en el orden de columnas de una tabla.

  • Cambios en un tipo de datos de columna a uno que no es compatible con un tipo de datos existente y que utiliza tipos de datos nativos de SQL. Esta situación puede producirse si un cambio del tipo de datos lleva al truncamiento de datos, como int a bit o nvarchar(100) a char(10).

  • Cambios en una propiedad de columna, como la identidad de una columna.

  • Cambios en las propiedades de una columna de identidad en una tabla, como la inicialización de identidad.

  • Cambios en una columna que no permite valores nulos y que no tiene ningún valor predeterminado asociado, como cambiar una columna para permitir valores nulos.

  • Cambios en una columna que no permite valores nulos cuando la tabla contiene columnas adicionales enlazadas a la columna que está cambiando.

  • Inclusión de una columna en la que ha activado la casilla Forzar que el orden de las columnas de tabla sea idéntico. Para obtener más información, vea Opciones (Herramientas para bases de datos/Comparación de esquemas).

  • Cambios en el grupo de archivos de una tabla.

Si el script de implementación o de actualización contiene estos tipos de cambios, puede modificarlo manualmente para conservar los datos.

Vea también

Tareas

Cómo: Controlar la pérdida de datos durante la implementación en bases de datos existentes

Cómo: Implementar cambios en bases de datos nuevas o existentes

Cómo: Establecer opciones para comparar esquemas de base de datos

Cómo: Sincronizar esquemas de base de datos

Conceptos

Introducción a la terminología de Database Edition