2009-11-18 22 views
10

Recientemente utilicé el Asistente de migración de SQL Server para importar una base de datos en SQL Server 2005. Observé que varias tablas que se importaron se han modificado con una nueva columna llamada SSMA_timestamp.marca de tiempo SSMA. ¿Para qué sirve? ¿Cómo se usa?

¿Alguien me puede decir para qué sirve y cómo se usaría?

Respuesta

10

Creo que esto se genera para que el asistente de migración pueda detectar cambios en los datos durante la migración.

A menos que continúe utilizando Access como interfaz de esta base de datos específica que ha migrado a SQL Server (en cuyo caso, vea la respuesta de Simon), no creo que se utilicen para nada una vez completada la migración, por lo que debería ser seguro soltar estas nuevas columnas una vez que esté seguro de que todo está hecho.

+0

¡Gracias por la información! – Chris

+0

Tenga en cuenta que, aunque esta respuesta se ha marcado como respuesta, no es correcta (consulte mi respuesta a continuación con enlaces a una explicación detallada de las columnas de SSMA_timestamp utilizadas). –

+0

@SimonTewsi, por lo que mi respuesta de tres años a esta pregunta de tres años no es correcta en el caso único en el que continúe utilizando Access como interfaz, que el OP no ha especificado que esté haciendo, y usted abajo- votame? Buen espíritu de comunidad –

15

Las columnas SSMA_timestamp agregadas no solo se usan durante la migración. De hecho, ayudan a evitar errores cuando Access actualiza registros en tablas vinculadas a SQL Server. Por lo tanto, si todavía está utilizando una interfaz de Access vinculada a la base de datos migrada de SQL Server, sería mejor no dejar caer las columnas SSMA_timestamp.

Desde el artículo de MSDN Optimizing Microsoft Office Access Applications Linked to SQL Server:

apoyo cheques de concurrencia

Probablemente, la causa principal de los problemas de las capacidades de actualización de tablas vinculadas-Office Access es que Office Access no puede verificar si los datos sobre los partidos de servidor lo que fue recuperado por última vez por el dynaset siendo actualizado. Si Office Access no puede realizar esta verificación, asume que la fila del servidor ha sido modificada o borrada por otro usuario y cancela la actualización.

Existen varios tipos de datos que Office Access no puede verificar de manera confiable para encontrar valores coincidentes. Estos incluyen tipos de objetos grandes, como texto, ntext, imagen y los tipos varchar (max), nvarchar (max) y varbinary (max) introducidos en SQL Server 2005. Además, los tipos numéricos de coma flotante, como los reales y flotar, están sujetos a problemas de redondeo que pueden hacer que las comparaciones sean imprecisas, lo que da como resultado actualizaciones canceladas cuando los valores realmente no han cambiado. Office Access también tiene problemas para actualizar las tablas que contienen columnas de bits que no tienen un valor predeterminado y que contienen valores nulos.

Una manera rápida y fácil de solucionar estos problemas es agregar una columna de marca de tiempo a la tabla en SQL Server. Los datos en una columna de marca de tiempo no tienen relación alguna con la fecha o la hora. En cambio, es un valor binario que se garantiza que será único en toda la base de datos y aumentará automáticamente cada vez que se asigne un nuevo valor a cualquier columna de la tabla. El término estándar ANSI para este tipo de columna es rowversion. Este término es compatible con SQL Server.

Office Access detecta automáticamente cuándo una tabla contiene este tipo de columna y la utiliza en la cláusula WHERE de todas las instrucciones UPDATE y DELETE que afectan a esa tabla. Esto es más eficiente que verificar que todas las otras columnas todavía tengan los mismos valores que tenían cuando el dynaset se actualizó por última vez.

El Asistente de migración de SQL Server para Office Access agrega automáticamente una columna denominada SSMA_TimeStamp a cualquier tabla que contenga tipos de datos que puedan afectar la capacidad de actualización.

+1

En lugar de publicar enlaces a algún foro en algún sitio que pueda desaparecer mañana, ¿por qué no publicar la parte relevante de la información aquí, por lo que esta respuesta será útil para las personas independientemente de lo que ocurra en esos otros sitios? –

+3

@ Aaron: Buen punto. He editado mi respuesta según tu sugerencia. Gracias. –