Será bcp a manter a ordem de linha durante a exportação em um arquivo de dados?

StackOverflow https://stackoverflow.com/questions/2015885

  •  19-09-2019
  •  | 
  •  

Pergunta

Eu preciso para exportar dados para um arquivo de uma enorme mesa com apenas uma coluna, mas milhares de linhas onde a ordenação de linha é importante. Estou usando o comando bcp como abaixo
bcp DBNAME.dbo.tblName out mydata.dat -Uusername -Ppassword -c
Eu verifiquei com a tabela com 10 linhas e vejo que a ordem das linhas é mantido no arquivo de dados. Mas eu posso assumir bcp manteriam a ordem se o número de linhas é dizer mais do que 10000?

Foi útil?

Solução

Eu acho que vai se você usar uma instrução SQL (com ORDER BY) em seu comando bcp:

http://www.sqlteam.com/ article / exportação de-dados-programaticamente-com-bcp-and-xp_cmdshell

onde eles têm o seguinte exemplo:

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

Outras dicas

Você nunca deve assumir que um SELECT SQL (ou bcp) irá retornar valores em uma determinada ordem ou a mesma ordem a menos que você use uma cláusula ORDER BY.

De um modo geral, os valores são retornados em ordem com base em um índice na tabela.

casos No entanto, tenho visto que os valores não são retornados na ordem do índice. Parece que as linhas no cache podem ser devolvidos antes de linhas de disco, mesmo se as linhas no disco são o primeiro no índice.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top