Domanda

Sto utilizzando SQL-Server 2005.

Ho un database dev e prod che hanno essenzialmente gli stessi dati in loro. Quando faccio un confronto con Redgate SQL Data Compare 5, si dice che solo 4 record differiscono. Tuttavia, quando apro le tabelle e visualizzarli, sono in un ordinamento completamente diverso. Né tabella ha un indice o nulla forzando l'ordinamento, e sto cercando di assicurarsi che il mio dev è ordinato nello stesso ordine di prod. Ma Redgate non mi dirà quando sono vicino, perché è apparentemente Ricerca di record corrispondenti, anche se non sono nello stesso ordinamento. Come faccio a ignorare che?

Mi piacerebbe utilizzare lo strumento per dire quando ho capito il criterio di ordinamento, per essere sicuro di avere ragione.

È stato utile?

Soluzione

A differenza di ordinamento significa solo che le righe sono posti nelle file di dati in un modo fisicamente diversi, ma i dati partite ancora esattamente, in modo da DC segnala ancora che corrispondano. Non c'è possibilità di farlo "Rispettate ordine disco fisico" (che è essenzialmente quello che stai chiedendo), perché anche se si nota una differenza, non c'è modo per sincronizzare la differenza, come SQL Server non ha un metodo per il controllo di modifica ordine dei dischi.

L'ordine in cui i dati è tirato dal disco quando si esegue una query una tabella non dovrebbe mai essere invocata - se avete bisogno di un certo ordine, si dovrebbe includere un "ORDER BY" clausola nella query per imporre un certo tipo di ordinamento . Se c'è qualche ragione per cui non è possibile utilizzare ORDER BY, l'unica altra opzione per imporre un certo ordine di ordinamento è l'aggiunta di un indice cluster sul campo con il quale desideri ordinare la tabella.

Se avete veramente bisogno di riordinare i dati, quindi avrete bisogno di troncare la tabella che è "sbagliato" e popolarlo con un "INSERT INTO [cattivo tavolo ordine] SELECT * FROM [buona tavola ordine]". Anche allora, mentre dovrebbe avere l'effetto desiderato, non c'è alcuna garanzia.

Mi consiglia la clausola ORDER BY come l'opzione migliore. Se c'è un motivo per nessuna di queste opzioni funziona, fatemelo sapere e posso provare a suggerire qualcosa di diverso.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top