Necesito poder determinar el orden en que se insertaron las filas en una tabla (no hay actualizaciones). ¿Puedo usar una columna de identidad para hacer esto? Sé que puede haber lagunas, pero ¿están garantizados los valores por orden de inserción?¿Puedo usar una columna de identidad de SQL Server para determinar el orden insertado de las filas?
Q
¿Puedo usar una columna de identidad de SQL Server para determinar el orden insertado de las filas?
7
A
Respuesta
7
En gran parte sí, siempre y cuando no lo restablezca o inserte filas con copia masiva, o use IDENTITY_INSERT
. Y, por supuesto, suponiendo que no se desborde el tipo de datos (que podría ser impresionante).
2
Sí. Cualquier hueco causado por eliminaciones no se reutilizará
2
Como se ha comentado por Marc, sí se puede con salvedades
lo que debe hacer sin embargo para fijar definitivamente el problema es añadir una columna
dteInserted datetime not null default getdate()
A continuación, sólo tiene que seleccionar ordenadas por esta.
Yo mismo agrego automáticamente esa columna a cualquier tabla de "datos" en cualquier base de datos que estoy diseñando. El almacenamiento es barato hoy en día y la marca de tiempo de la fecha de inserción en una fila es siempre útil en algún momento.
Cuestiones relacionadas
- 1. ¿Cómo controlar el orden de asignación para la nueva columna de identidad en SQL Server?
- 2. SQL Server - restablecer el campo de identidad
- 3. ¿Cómo agregar una nueva columna de identidad a una tabla en SQL Server?
- 4. Cómo agregar identidad a la columna en SQL Server?
- 5. ¿SQL Server garantiza la inserción secuencial de una columna de identidad?
- 6. columna de identidad en el servidor Sql
- 7. ¿Cómo puedo determinar si una columna es una columna de identidad en MSSQL 2000?
- 8. Reutilizar el valor de identidad después de eliminar las filas
- 9. ¿Cómo puedo determinar si una columna está en la clave principal de su tabla? (SQL Server)
- 10. Consulta SQL para agregar una nueva columna después de una columna existente en SQL Server 2005
- 11. En SQL Server, ¿debería crear un índice para una columna de identidad o se crea automáticamente?
- 12. Servidor SQL cómo quitar la identidad de una columna
- 13. Servidor SQL: ¿cómo agregar una nueva columna de identidad y llenar una columna con identificadores?
- 14. Consulta de SQL Server 2008 para buscar filas que contengan caracteres no alfanuméricos en una columna
- 15. promedio de filas agrupadas en SQL Server
- 16. ¿Cómo puedo verificar si una columna de texto de SQL Server está vacía?
- 17. actualizar una columna para todas las filas
- 18. Agregar una identidad a una columna existente
- 19. número de filas SQL Server
- 20. Número de filas 'superpuestas' en SQL Server
- 21. Eliminar identidad de una columna en una tabla
- 22. DB: ¿Para utilizar la columna de identidad o no?
- 23. Servidor SQL: obtenga el valor de identidad de registro insertado cuando utilice una vista en lugar de desencadenar
- 24. Cambiar la semilla de identidad en SQL Server (¡permanentemente!)
- 25. ¿Cómo puedo resembrar una columna de identidad en una variable de tabla T-SQL?
- 26. sql server helper procedimiento almacenado o utilidad para alterar tabla alterar columna IDENTIDAD (1,1)
- 27. Servidor SQL: ¿importa el orden de las columnas?
- 28. Añadir columna de identidad a una vista en SQL Server 2008
- 29. SQL Server Restablecer el aumento de identidad para todas las tablas
- 30. de SQL Server en el contexto de otra columna
El problema aquí es que si inserta filas lo suficientemente rápido (lo que hacemos en una importación), obtiene fechas de tiempo duplicadas ya que la granularidad de una fecha y hora no es lo suficientemente pequeña en SQL Server. – Jon
Hmm, buen punto, preferiría centrarme en la idea de que estarías insertando a través de las operaciones normales de la base de datos transaccional. De acuerdo, entonces la respuesta en ese caso es que la identidad está en orden, pero aún debe incluir la marca de tiempo porque eso le permitirá detectar cualquier problema .... – Cruachan
... que surja como inserciones de identidad o reinicios o lo que sea que invalidar la suposición. – Cruachan