Para crear un identificador único de secuencia en una tabla de SQL Server lo más sencillo es definir un campo de tipo Identity, y que se vaya generando sólo, pero si no se puede utilizar esta solución, o no es apropiada para un caso concreto, una solución muy sencilla para informar de manera puntual un campo con un número secuencial para cada fila es utlizar ROW_NUMBER() OVER para generar esa secuencia.
Si, por ejemplo, queremos generar estos identificadores consecutivos para todas las filas de una tabla 'MyTable' en un campo 'MyRow_id' , sólo tenemos que hacer algo así:
-- Update MyRow_id with a sequential identifier ;WITH TableRanked AS( SELECT ROW_NUMBER() OVER(ORDER BY (SELECT NULL)) as rownumber, MyRow_id FROM MyTable ) UPDATE TableRanked SET MyRow_id=rownumber OPTION (MAXDOP 1)
Esta sería una solución puntual, otra cosa es si se desea mantener este campo actualizado..
- Printer-friendly version
- Log in to post comments