Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:SQL Server
Azure SQL Database
Instancia
administrada de Azure SQLBase de datos SQL en Microsoft Fabric
En este artículo se describe cómo habilitar y deshabilitar el seguimiento de cambios para una base de datos y una tabla.
Habilitar el seguimiento de cambios para una base de datos
Para poder utilizarlo, el seguimiento de cambios se debe habilitar previamente en el nivel de la base de datos. En el ejemplo siguiente se muestra cómo habilitar el seguimiento de cambios mediante las opciones ALTER DATABASE SET.
ALTER DATABASE AdventureWorks2022
SET CHANGE_TRACKING = ON
(CHANGE_RETENTION = 2 DAYS, AUTO_CLEANUP = ON)
También puede habilitar el seguimiento de cambios en SQL Server Management Studio mediante el cuadro de diálogo Propiedades de la base de datos (página ChangeTracking). Si una base de datos contiene tablas optimizadas para memoria, no podrá habilitar el seguimiento de cambios con SQL Server Management Studio. Para habilitarlo, use T-SQL.
Puede especificar las CHANGE_RETENTION opciones y AUTO_CLEANUP al habilitar el seguimiento de cambios y puede cambiar los valores en cualquier momento después de habilitar el seguimiento de cambios.
El valor de retención de los cambios especifica el período de tiempo para el cual se conserva la información del seguimiento de cambios. La información del seguimiento de cambios anterior a este período de tiempo se quita periódicamente. Al establecer este valor, debe tener en cuenta la frecuencia con la que las aplicaciones se sincronizarán con las tablas de la base de datos. El período de retención especificado debe ser como mínimo igual al período máximo de tiempo entre sincronizaciones. Si una aplicación obtiene los cambios en intervalos más prolongados, los resultados que se devuelven podrían ser incorrectos, puesto que es posible que parte de la información de los cambios se haya quitado. Para evitar obtener resultados incorrectos, una aplicación puede utilizar la función del sistema CHANGE_TRACKING_MIN_VALID_VERSION con el fin de determinar si el intervalo entre las sincronizaciones ha sido demasiado largo.
Puede usar la AUTO_CLEANUP opción para habilitar o deshabilitar la tarea de limpieza que quita la información de seguimiento de cambios antigua. Esto puede ser útil cuando hay un problema temporal que impide que las aplicaciones se sincronicen y el proceso para quitar la información de seguimiento de cambios anterior al período de retención debe pausarse hasta que se resuelva el problema.
Tenga en cuenta lo siguiente para cualquier base de datos que utilice seguimiento de cambios:
Para utilizar el seguimiento de cambios, el nivel de compatibilidad de la base de datos debe establecerse en 90 o mayor. Si una base de datos tiene un nivel de compatibilidad menor que 90, puede configurar el seguimiento de cambios. Sin embargo, la función CHANGETABLE, que se utiliza para obtener información del seguimiento de cambios, devolverá un error.
El uso del aislamiento de instantánea es la manera más fácil de ayudarle a asegurarse de que toda la información del seguimiento de cambios es coherente. Por este motivo, se recomienda encarecidamente establecer
ONel aislamiento de instantáneas en para la base de datos. Para obtener más información, vea Trabajar con el seguimiento de cambios (SQL Server).
Habilitar el seguimiento de cambios para una tabla
El seguimiento de cambios debe estar habilitado para cada tabla en la que desea realizar el seguimiento. Cuando el seguimiento de cambios se habilita, su información correspondiente se mantiene para todas las filas de la tabla a las que afecta una operación DML.
En el ejemplo siguiente se muestra cómo habilitar el seguimiento de cambios para una tabla utilizando ALTER TABLE.
ALTER TABLE Person.Contact
ENABLE CHANGE_TRACKING
WITH (TRACK_COLUMNS_UPDATED = ON)
También puede habilitar el seguimiento de cambios para una tabla en SQL Server Management Studio mediante el cuadro de diálogo Database Properties (ChangeTracking Page) (Propiedades de la base de datos [página ChangeTracking]).
Cuando la TRACK_COLUMNS_UPDATED opción se establece ONen , el motor de base de datos de SQL Server almacena información adicional sobre qué columnas se actualizaron a la tabla de seguimiento de cambios interna. El seguimiento de columnas puede permitir a una aplicación sincronizar solo las columnas que fueron actualizadas, lo cual puede mejorar la eficacia y el rendimiento. Sin embargo, dado que el mantenimiento de la información de seguimiento de columnas agrega cierta sobrecarga de almacenamiento adicional, esta opción se establece OFF en de forma predeterminada.
Deshabilitación de Change Tracking para una tabla o una base de datos
El seguimiento de cambios primero debe deshabilitarse para todas las tablas de seguimiento de cambios antes de que el seguimiento de cambios se pueda establecer en OFF para la base de datos. Para determinar qué tablas de una base de datos tienen habilitado el seguimiento de cambios, use la vista de catálogo sys.change_tracking_tables .
En el siguiente ejemplo se muestra cómo deshabilitar el seguimiento de cambios para una tabla utilizando ALTER TABLE.
ALTER TABLE Person.Contact
DISABLE CHANGE_TRACKING;
Cuando ninguna de las tablas de una base de datos está sometida a seguimiento de cambios, es posible deshabilitar el seguimiento de cambios para la base de datos. En el ejemplo siguiente se muestra cómo deshabilitar el seguimiento de cambios para una base de datos mediante las opciones ALTER DATABASE SET.
ALTER DATABASE AdventureWorks2022
SET CHANGE_TRACKING = OFF
Contenido relacionado
- Propiedades de la base de datos (página ChangeTracking)
- Opciones de ALTER DATABASE SET (Transact-SQL)
- Vistas del catálogo de Seguimiento de cambios: sys.change_tracking_databases
- Vistas del catálogo de Seguimiento de cambios: sys.change_tracking_tables
- Seguimiento de los cambios de datos (SQL Server)
- Acerca del seguimiento de cambios (SQL Server)
- Trabajar con datos modificados
- Administrar el seguimiento de cambios (SQL Server)