usage type ejemplo data current sql-server timestamp indexed-view rowversion

sql-server - type - sql server timestamp vs datetime



Consecuencias de indexar la columna rowversion/timestamp en SQL Server (1)

En relación con mi pregunta anterior sobre tener una secuencia sin agujeros provisionales (una garantía de que los números que son visibles para los lectores siempre se incrementan) ingrese aquí la descripción del enlace. Me gustaría preguntar si una solución que diseñé tiene sentido.

rowversion una tabla con una columna rowversion . Si entiendo esto correctamente, SQL Server garantiza que los valores siempre aumentarán. Debido a que esto es solo un grupo de bytes, las consultas como WHERE RowVer > 1567 requerirían un molde y, por lo tanto, causarían una exploración de tabla.

Así que creé una vista de índice que haría el reparto y estoy consultando la vista. En el nivel superficial funciona (el plan de consulta muestra búsqueda de índice) pero no estoy seguro de si la garantía siempre creciente sigue siendo verdadera si reviso el índice. Por favor ayuda.

Editar
Parece que funciona bien cuando se depura pero insertando en mi bloque de tabla cualquier selección en su contra. Necesidad de investigar qué tipo de bloqueos se mantienen.


No, no tiene sentido

rowversion/timestamp es una base de datos única, no una tabla única. Y se cambiará por ACTUALIZACIONES a fila (s), no solo a INSERTOS. Por lo tanto, esto no es estrictamente monótonamente creciente como lo desea.

Tenga en cuenta que no se garantiza que el número comience en un valor particular.

Editar, ¿qué es "base de datos única"?

MSDN dice para rowversion (timestamp)

Cada base de datos tiene un contador que se incrementa para cada inserción o operación de actualización que se realiza en una tabla que contiene una columna rowversion dentro de la base de datos. Este contador es la versión de fila de la base de datos

El valor actual está en @@DBTS