Est-ce que bcp out maintenir l'ordre de la ligne lors de l'exportation dans un fichier de données?

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

  •  19-09-2019
  •  | 
  •  

Question

Je dois exporter des données vers un fichier à partir d'une grande table avec une seule colonne, mais des milliers de lignes où la commande de la ligne est importante. J'utilise commande bcp comme ci-dessous
    bcp DBNAME.dbo.tblName out mydata.dat -Uusername -Ppassword -c
Je suis arrivé à la table ayant 10 lignes et je vois que l'ordre des lignes est maintenue dans le fichier de données. Mais puis-je prendre bcp maintenir l'ordre si le nombre de lignes est de dire plus de 10000?

Était-ce utile?

La solution

Je pense que ce sera si vous utilisez une instruction SQL (avec ORDER BY) dans votre commande bcp:

http://www.sqlteam.com/ article / exportation-data-programatically-with-PCA-et-xp_cmdshell

où ils ont l'exemple suivant:

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

Autres conseils

Vous ne devriez jamais supposer qu'un SQL SELECT (ou bcp) retourne des valeurs dans un certain ordre ou le même ordre, sauf si vous utilisez une clause ORDER BY.

En général, les valeurs sont renvoyées dans l'ordre basé sur un index sur la table.

Cependant, j'ai vu des cas où les valeurs ne sont pas retournés dans l'ordre des indices. Il semble que les lignes dans le cache peuvent être retournés avant des lignes à partir du disque, même si les lignes sur le disque sont les premiers dans l'index.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top