Tengo una tabla con CreateDate datetime
campo default(getdate())
que no tiene ninguna columna de identidad.¿Cómo controlar el orden de asignación para la nueva columna de identidad en SQL Server?
Me gustaría agregar el campo identity(1,1)
que reflejaría el mismo orden de registros existentes como CreateDate
campo (order by
daría los mismos resultados). ¿Cómo puedo hacer eso?
Supongo que si creo una clave agrupada en el campo CreateDate
y luego agrego una columna de identidad, funcionará (no estoy seguro de si está garantizado), ¿hay una buena/mejor manera?
Tengo interés en SQL Server 2005, pero supongo que la respuesta será la misma para SQL Server 2008, SQL Server 2000.
No, no lo hará. Solo una cláusula ORDER BY garantizará una ORDEN – gbn
@gbn Cada vez que inserte una columna de identidad, el orden de los autonumeros coincidió con el índice agrupado. He contado con este comportamiento para obtener el orden que deseaba. ¿Estás diciendo que este comportamiento no está garantizado y que podría no suceder, que he tenido suerte? –
@Patrick: IDENTITY puede dejar huecos, está documentado en MSDN: "Si existe una columna de identidad para una tabla con eliminaciones frecuentes, pueden existir espacios vacíos entre los valores de identidad". –