Questo può essere un problema quando si utilizza controllo del codice sorgente e automatizzato implementazioni ad un ambiente di sviluppo condiviso. Dove lavoro, abbiamo un DB di esempio molto ampio sul nostro livello di sviluppo con cui lavorare (un sottoinsieme dei nostri dati di produzione).
Recentemente ho fatto un po 'di lavoro per rimuovere una colonna da un tavolo e aggiungerne altre alla fine. Ho quindi dovuto annullare la rimozione della colonna, quindi l'ho riaggiunta alla fine, il che significa che la tabella e tutti i riferimenti sono corretti nell'ambiente, ma la distribuzione automatica del controllo del codice sorgente non funzionerà più perché si lamenta della modifica della definizione della tabella.
Il vero problema qui è che gli indici tabella + sono ~ 120GB e l'ambiente ha solo ~ 60GB libero in modo avrò bisogno di uno:
a) Rinominare le colonne esistenti, che sono nell'ordine sbagliato, aggiungere nuove colonne nel giusto ordine, aggiornano i dati poi cadere le vecchie colonne
O
b) rinominare la tabella, creare una nuova tabella con l'ordine corretto, inserire la nuova tabella dalla vecchia e cancellare dal vecchio mentre percorro
L'opzione Confronto schema SSMS/TFS dell'utilizzo di una tabella temporanea non funzionerà perché non c'è abbastanza spazio sul disco per farlo.
Non sto cercando di dire che questo è il modo migliore per fare le cose o che l'ordine delle colonne conta davvero, solo che ho uno scenario in cui è un problema e sto condividendo le opzioni che ho pensato di per risolvere il problema
fonte
2016-02-03 10:25:47
non c'è vero modo per cambiare l'ordine delle colonne - Anche se SSMS fingerà lì è crea effettivamente una nuova tabella, copia i dati, elimina l'originale e rinomina quello nuovo. Dovresti davvero imparare a convivere con il fatto che le colonne possono essere in qualsiasi ordine e che non c'è alcun significato intrinseco all'ordine. Sarai più produttivo a lungo termine. –
Anche se molte persone sottolineano l'ordine delle colonne, non importa, penso che manchino all'immagine più grande. Noi come sviluppatori non possiamo essere gli unici a accedere al database. Analisti e simili spesso hanno bisogno di visualizzare i dati e l'ordine delle colonne può fare una grande differenza per loro.L'ordine delle colonne semplifica inoltre la visualizzazione dei dati gerarchici. – webworm
Webworm concordato. ma oltre a questo, alcuni software non seguono le migliori pratiche. Ho un'applicazione che utilizza un database che viene unito al merge. l'applicazione ignorerà la colonna rowguid aggiunta a una tabella replicata fintanto che è l'ultimo campo nella tabella. Colonne aggiunte dopo la colonna rowguid non si comportano correttamente nell'applicazione. Cattiva programmazione? ovviamente. Ma non l'ho scritto e devo conviverci finché non è disponibile una soluzione. –