2010-02-11 22 views
8

Tenemos una base de datos que se ejecuta en un servidor compartido a través de SQL Server 2008. Ahora estamos en la posición, debido a las limitaciones de rendimiento, donde tenemos que mover la base de datos, junto con un sitio web. Utilizamos el seguimiento de cambios en la base de datos para que los clientes puedan sincronizar utilizando el marco de sincronización.SQL Server 2008: ¿Dónde se almacena la tabla de seguimiento de cambios?

Mi pregunta es: ¿está la tabla de seguimiento de cambios almacenada dentro de la base de datos de manera que cuando se reubique, permanezca en su lugar?

Actualmente estoy en el proceso de aprendizaje de SQL Server, y los puntos más finos del seguimiento de cambios aún me aluden. Conceptualmente, realmente no entiendo 'dónde' está la tabla de seguimiento de cambios.

+0

Párrafos para la victoria: D –

+0

heh, gracias. Estoy seguro de que los puse pero ¡oh bien! – Sergio

Respuesta

4

La tabla Confirmar es una tabla interna oculta denominada sys.syscommittab a la que solo pueden acceder los administradores directamente, y almacena una fila por cada transacción para cada modificación en una tabla que participe en Seguimiento de cambios.

Los datos relacionados se almacenan en tablas de sistema separadas, creadas cuando el seguimiento de cambios está habilitado en una tabla de usuario.

La tabla interna creada habilitando el seguimiento de cambios a nivel de tabla se llama sys.change_tracking_[object id], donde [object id] es el objectID para la tabla de destino.

+0

Gracias por la respuesta. Tendrás que perdonar mi ignorancia, pero con sys.syscommittab oculto e interno ¿eso significa que está separado de la base de datos y no se incluirá en ninguna copia de seguridad? Peor suposición, movemos la base de datos y perdemos la información de seguimiento de cambios, supongo. – Sergio

+0

@Sergio: pregunta interesante, no estoy seguro. Voy a tener una excavación ... –

1

De here parece que el seguimiento de cambios es una tabla de propósito general en el mismo catálogo de bases de datos que sus tablas. Por lo tanto, cualquier movimiento que haga de la base de datos debe llevar la tabla de cambios con usted.

Primero investigaría el esquema de la base de datos y usaría las páginas de MSDN.

+0

@Hassan Syed: lamentablemente, no creo que sea correcto –

+0

Gracias por el enlace a los documentos. leyendo sobre él ahora – Sergio

1

Deliberado sobre si debo o no publicar esto como una respuesta, ya que generalmente no me gusta solo dando un enlace, pero en este caso quería resumir algunos de los puntos y no me iría bien como ¡comentario!

This El artículo merece una lectura que proporciona muchos detalles sobre cómo funciona el seguimiento de cambios y (y la captura de datos modificados).

Para el seguimiento de cambios, se puede encontrar lo que las tablas internas se utilizan para rastrear los cambios usando:

SELECT [name] FROM sys.internal_tables 
    WHERE [internal_type_desc] = 'CHANGE_TRACKING'; 

La cita importante es:

La tabla es lo que se llama una tabla interna , y no hay control sobre su nombre o dónde está almacenado el .

Cuestiones relacionadas