marca de tiempo (SQL Server Compact)

Es un tipo de datos que muestra números binarios únicos generados automáticamente en una base de datos. rowversion y timestamp son sinónimos de tipos de datos. rowversion se utiliza generalmente como mecanismo para marcar la versión de las filas de una tabla. El tamaño de almacenamiento es de 8 bytes. El tipo de datos rowversion es un número que se incrementa y no conserva una fecha o una hora. Para grabar una fecha o una hora, utilice un tipo de datos datetime.

Comentarios

Las características del tipo de datos rowversion son las siguientes:

  • Una tabla sólo puede tener una columna rowversion.

  • El valor de la columna rowversion se actualiza cada vez que se inserta o actualiza una fila que contiene una columna rowversion. Esto hace que una columna rowversion sea poco adecuada para claves, especialmente para claves principales.

  • rowversion es una columna de sólo lectura y no se puede actualizar.

  • rowversion es único en toda la base de datos.

  • Para devolver el valor actual de rowversion para una base de datos, use el comando @@DBTS.

Importante

Cuando se revierte alguna transacción o se producen errores en alguna validación, el contador de rowversion no se puede restablecer al valor anterior. Esto se prohíbe debido a que si al mismo tiempo se producían otras transacciones, el restablecimiento del contador podría causar problemas. Para obtener el valor actual de rowversion, puede consultarlo mediante @@DBTS. Durante la replicación de SQL Server a SQL Server Compact o viceversa las columnas timestamp no se replican de una base de datos a otra. Esto ayuda a garantizar la unicidad de timestamp. Un valor copiado puede estar en conflicto con un valor existente de alguna fila de datos o con algún valor futuro.

Ejemplos

Si utiliza el tipo de datos timestamp, existe una diferencia en la instrucción de consulta escrita para SQL Server y SQL Server Compact. En SQL Server, el nombre de columna es opcional si se utiliza el tipo de datos timestamp. Sin embargo, en SQL Server Compact el nombre de columna es obligatorio.

Si usa el tipo de datos rowversion, debe especificar siempre el nombre de columna tanto si usa SQL Server como SQL Server Compact. En los siguientes ejemplos se muestran consultas que utilizan la palabra clave timestamp y rowversion.

SQL Server

SQL Server Compact 3.5

Consulta de marca de tiempo

CREATE TABLE ExampleTable (PriKey int PRIMARY KEY, timestamp);

Consulta de marca de tiempo

CREATE TABLE ExampleTable (PriKey int PRIMARY KEY, c3 timestamp);

Consulta de versión de fila

Create table t1 (c1 int PRIMARY KEY, c2 nvarchar(50), c3 rowversion);

Consulta de versión de fila

Create table t1 (c1 int PRIMARY KEY, c2 nvarchar(50), c3 rowversion);

Vea también

Referencia

@@DBTS (SQL Server Compact)