Ho due tabelle con 10-20 milioni di righe che dispongono di chiavi primarie GUID e di 12 tabelle correlate tramite chiave esterna. Le tabelle di base hanno 10-20 indici ciascuno.Approccio per la modifica della chiave primaria da GUID a BigInt nelle tabelle relative a SQL Server
Stiamo passando dal GUID alle chiavi primarie BigInt. Mi chiedo se qualcuno ha qualche suggerimento su un approccio. Proprio ora questo è l'approccio che sto meditando:
- Eliminare tutti gli indici e le fkeys su tutte le tabelle coinvolte.
- Add colonna 'NewPrimaryKey' ad ogni tavolo
- Effettuare l'identità chiave sulle due tabelle di base
- Script il cambiamento dei dati "tabella di aggiornamento x, impostare NewPrimaryKey = y dove OldPrimaryKey = z
- Rinominare il PrimaryKey originale a 'oldprimarykey'
- Rinominare il 'NewPrimaryKey' colonna 'PrimaryKey'
- script indietro tutti gli indici ei tasti fkeys
Vi sembra come un buon approccio? Qualcuno sa di uno strumento o script che potrebbe aiutare con questo?
TD: Modificato per ulteriori informazioni. Vedere questo post del blog che risolve un approccio quando il GUID è il primario: http://www.sqlmag.com/blogs/sql-server-questions-answered/sql-server-questions-answered/tabid/1977/entryid/12749/Default.aspx
Quale percorso hai finito? Oltre a quello che hai detto, l'applicazione dovrà essere sicuro di sapere che PrimaryKey è ora il tuo nuovo tipo di dati e non Guid. – user420667