Domanda

Ho bisogno di esportare i dati in un file da una tabella enorme con una sola colonna, ma migliaia di righe in cui l'ordinamento di fila è importante. Sto usando il comando bcp, come di seguito
    bcp DBNAME.dbo.tblName out mydata.dat -Uusername -Ppassword -c
Ho controllato con la tabella che ha 10 righe e vedo che l'ordine delle righe viene mantenuto nel file di dati. Ma posso supporre BCP sarebbe mantenere l'ordine se il numero di righe è dire di più di 10000?

È stato utile?

Soluzione

Penso che sarà se si utilizza un'istruzione SQL (con ORDER BY) nel comando BCP:

http://www.sqlteam.com/ Articolo / esportazione-dati-programmatico-con-BCP-e-xp_cmdshell

dove hanno il seguente esempio:

SET @bcpCommand = 'bcp "SELECT * FROM pubs..authors 
   ORDER BY au_lname" queryout "' 

Altri suggerimenti

Non si dovrebbe mai pensare che uno SQL SELECT (o BCP) i valori torneranno in un certo ordine o lo stesso ordine se non si utilizza una clausola ORDER BY.

In generale, i valori vengono restituiti in ordine sulla base di un indice nella tabella.

Tuttavia, ho visto casi in cui i valori non vengono restituiti in ordine di indice. Sembra che le righe nella cache possono essere restituiti prima fila dal disco, anche se le righe sul disco sono la prima nell'indice.

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