Tengo una base de datos MS SQL 2005 con una tabla Test
con la columna ID
. ID
es una columna de identidad.¿Cómo cambiar los valores de la columna de identidad de forma programática?
tengo filas en esta tabla y todos ellos tienen su correspondiente valor autoincremented ID.
Ahora me gustaría cambiar cada ID en esta tabla como la siguiente:
ID = ID + 1
Pero cuando hago esto me da un error:
Cannot update identity column 'ID'.
He intentado esto:
ALTER TABLE Test NOCHECK CONSTRAINT ALL
set identity_insert ID ON
Pero esto no resuelve el problema.
Necesito tener identidad configurado para esta columna, pero tengo que cambiar los valores, así de vez en cuando. Entonces mi pregunta es cómo lograr esta tarea.
establecer esto funcionará sólo cuando la inserción de datos y no cuando se actualiza. La instrucción UPDATE aún fallará. –
Para una actualización, debe eliminar y volver a insertar. No hay otra manera. – ashes999
@MartinSmith su solución parece demasiado larga.Ser capaz de hacerlo en dos pasos (identidad desactivada, eliminar/insertar, identidad activada) es mucho más efectivo. – ashes999