Beh, non sarà un modo semplice e veloce per farlo, davvero....
Il mio approccio sarebbe questo:
-
crea una nuova tabella con struttura identica, ad eccezione dell'
ID
colonna essendoBIGINT IDENTITY
invece diINT IDENTITY
----[ metti il tuo server in modalità utente singolo esclusivo qui; l'utente non potrà utilizzare il tuo server da questo momento in poi ]----
-
trova e disabilita tutti i vincoli di chiave esterna che fanno riferimento alla tua tabella
-
attiva
SET IDENTITY_INSERT (your new table) ON
-
inserisci le righe dalla tua vecchia tabella nella nuova tabella
-
disattiva
SET IDENTITY_INSERT (your new table) OFF
-
elimina la tua vecchia tabella
-
rinomina la nuova tabella con il vecchio nome della tabella
-
aggiorna tutte le tabelle che hanno un riferimento FK alla tua tabella per usare
BIGINT
invece diINT
(che dovrebbe essere fattibile con un sempliceALTER TABLE ..... ALTER COLUMN FKID BIGINT
) -
ricreare nuovamente tutte le relazioni di chiave esterna
-
ora puoi riportare il tuo server al normale utilizzo multiutente di nuovo