Ho un database MS SQL 2005 con una tabella Test
con la colonna ID
. ID
è una colonna Identity.Come modificare i valori della colonna Identity a livello di codice?
Ho righe in questa tabella e tutte hanno il corrispondente valore autoincrementato ID.
Ora vorrei cambiare ogni ID in questa tabella come questa:
ID = ID + 1
Ma quando faccio questo ottengo un errore:
Cannot update identity column 'ID'.
Ho provato questo:
ALTER TABLE Test NOCHECK CONSTRAINT ALL
set identity_insert ID ON
Ma questo non risolve il problema.
Ho bisogno di avere l'identità impostata su questa colonna, ma ho bisogno di cambiare anche i valori di volta in volta. Quindi la mia domanda è come realizzare questo compito.
impostando questo funzionerà solo quando si inseriscono dati e non quando si aggiorna. L'istruzione UPDATE continuerà a fallire. –
Per un aggiornamento, è necessario eliminare e reinserire. Non c'è altro modo. – ashes999
@ MartinSmith la tua soluzione sembra troppo lunga.Essere in grado di farlo in due fasi (identity-off, delete/insert, identity-on) è molto più efficace. – ashes999