Frage

Ich muss die Daten in eine Datei aus einer riesigen Tabelle exportieren mit nur einer Spalte, sondern Tausende von Zeilen, in denen die Reihenfolge der Reihe von Bedeutung ist. Ich bin mit bcp wie unten
    bcp DBNAME.dbo.tblName out mydata.dat -Uusername -Ppassword -c
Ich habe mit der Tabelle 10 Zeilen mit, und ich sehe, dass die Reihenfolge der Zeilen in der Datendatei beibehalten wird. Aber kann ich davon ausgehen bcp würde die Ordnung aufrechtzuerhalten, wenn die Anzahl der Zeilen sagen mehr als 10000?

War es hilfreich?

Lösung

Ich denke, es wird, wenn Sie eine SQL-Anweisung (mit ORDER BY) verwenden in Ihrem bcp-Befehl:

http://www.sqlteam.com/ Artikel / Export-Daten-programmatisch-mit-bcp-and-xp_cmdshell

, wo sie das folgende Beispiel:

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

Andere Tipps

Sie sollten nie davon ausgehen, dass eine SQL SELECT (oder BCP) Werte in einer bestimmten Reihenfolge angezeigt werden oder die gleichen Reihenfolge, wenn Sie eine ORDER BY-Klausel verwenden.

Im Allgemeinen werden die Werte zurückgeführt, um auf der Grundlage eines Index für die Tabelle.

Ich habe jedoch Fälle, in denen die Werte nicht in Index-Reihenfolge zurückgegeben. Es scheint, dass die Zeilen im Cache können, bevor Zeilen von der Platte zurückgeführt werden, auch wenn die Zeilen auf der Festplatte sind die erste im Index.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top