Compartir a través de


Acerca de Change Tracking (SQL Server)

El seguimiento de cambios es una solución ligera que proporciona un mecanismo eficaz de seguimiento de cambios para las aplicaciones. Normalmente, para permitir que las aplicaciones consulten los cambios de los datos en una base de datos y tener acceso a la información relacionada con los mismos, los programadores de aplicaciones tenían que implementar mecanismos personalizados de seguimiento de cambios. La creación de estos mecanismos normalmente implica mucho trabajo y con frecuencia implica el uso de una combinación de desencadenadores, timestamp columnas, nuevas tablas para almacenar información de seguimiento y procesos de limpieza personalizados.

Los diferentes tipos de aplicaciones tienen requisitos distintos en cuanto a la cantidad de información que necesitan sobre los cambios. Las aplicaciones pueden utilizar el seguimiento de cambios para responder a las preguntas siguientes sobre las modificaciones que se han realizado en una tabla de usuario:

  • ¿Qué filas han cambiado para una tabla de usuario?

    • Solo se requiere el hecho de que una fila haya cambiado, no cuántas veces cambió o los valores de cualquier cambio intermedio.

    • Los datos más recientes se pueden obtener directamente de la tabla de la que se realiza el seguimiento.

  • ¿Ha cambiado una fila?

    • El hecho de que una fila haya cambiado y la información sobre el cambio deben estar disponibles y grabarse en el momento en que el cambio se realice en la misma transacción.

Nota:

Si una aplicación requiere información sobre todos los cambios realizados y los valores intermedios de los datos modificados, el uso de la captura de datos modificados, en lugar del seguimiento de cambios, podría ser adecuado. Para obtener más información, vea Acerca de la captura de datos modificados (SQL Server).

Aplicaciones de sincronización de One-Way y Two-Way

Las aplicaciones que tienen que sincronizar los datos con una instancia del Motor de base de datos de SQL Server deben de poder consultar los cambios. El seguimiento de cambios se puede utilizar como base para las aplicaciones de sincronización unidireccionales y bidireccionales.

Aplicaciones de Sincronización One-Way

Las aplicaciones de sincronización unidireccionales, como una aplicación de almacenamiento en caché de cliente o de nivel medio, se pueden crear que usen el seguimiento de cambios. Como se muestra en la ilustración siguiente, una aplicación de almacenamiento en caché requiere que los datos se almacenen en Motor de base de datos y también que se almacenen en memoria caché en otros almacenes de datos. La aplicación debe poder mantener la memoria caché actualizada con cualquier cambio que se realice en las tablas de base de datos. No hay ningún cambio que devolver a Motor de base de datos.

Muestra aplicaciones de sincronización unidireccionales

Two-Way Aplicaciones de sincronización

También se pueden crear aplicaciones de sincronización bidireccionales que usan el seguimiento de cambios. En este escenario, los datos de una instancia de Motor de base de datos se sincronizan con uno o varios almacenes de datos. Los datos de esos almacenes pueden actualizarse y los cambios se deben sincronizar de nuevo con Motor de base de datos.

Muestra aplicaciones de sincronización bidireccionales

Un buen ejemplo de aplicación de sincronización bidireccional es una aplicación conectada ocasionalmente. En este tipo de aplicación, una aplicación cliente consulta y actualiza un almacén local. Cuando hay una conexión disponible entre un cliente y un servidor, la aplicación se sincronizará con el servidor y los datos modificados fluirán en ambas direcciones.

Las aplicaciones de sincronización bidireccional deben ser capaces de detectar conflictos. Se produciría un conflicto si se cambiaran los mismos datos en ambos almacenes de datos en el tiempo entre sincronizaciones. Con la capacidad de detectar conflictos, una aplicación puede asegurarse de que los cambios no se pierdan.

Funcionamiento del seguimiento de cambios

Para configurar el seguimiento de cambios, puede usar instrucciones DDL o SQL Server Management Studio. Para obtener más información, vea Habilitar y deshabilitar Change Tracking (SQL Server). Para realizar un seguimiento de los cambios, primero debe habilitarse el seguimiento de cambios para la base de datos y, después, habilitarse para las tablas a las que desea realizar un seguimiento dentro de esa base de datos. La definición de tabla no tiene que cambiarse de ninguna manera y no se crea ningún desencadenador.

Una vez configurado el seguimiento de cambios para una tabla, cualquier instrucción DML que afecte a las filas de la tabla hará que se registre información de seguimiento de cambios para cada fila modificada. Para consultar las filas que han cambiado y obtener información sobre los cambios, puede usar funciones de seguimiento de cambios.

Los valores de la columna de clave principal son solo información de la tabla con seguimiento que se registra con la información de cambio. Estos valores identifican las filas que se han cambiado. Para obtener los datos más recientes de esas filas, una aplicación puede usar los valores de columna de clave principal para combinar la tabla de origen con la tabla sometida a seguimiento.

También se puede obtener información sobre el cambio realizado en cada fila mediante el seguimiento de cambios. Por ejemplo, el tipo de operación DML que provocó el cambio (insertar, actualizar o eliminar) o las columnas que se cambiaron como parte de una operación de actualización.

Véase también

Habilitar y deshabilitar el seguimiento de cambios (SQL Server)
Trabajar con el seguimiento de cambios (SQL Server)
Administrar el seguimiento de cambios (SQL Server)
Seguimiento de cambios de datos (SQL Server)