Поддерживает ли bcp порядок строк при экспорте в файл данных? - PullRequest
5 голосов
/ 06 января 2010

Мне нужно экспортировать данные в файл из огромной таблицы с одним столбцом, но тысячами строк, где важен порядок строк. Я использую команду BCP, как показано ниже
bcp DBNAME.dbo.tblName out mydata.dat -Uusername -Ppassword -c
Я проверил с таблицей, имеющей 10 строк, и я вижу, что порядок строк поддерживается в файле данных. Но могу ли я предположить, что bcp будет поддерживать порядок, если число строк скажет более 10000?

Ответы [ 2 ]

7 голосов
/ 06 января 2010

Я думаю, что так и будет, если вы используете оператор SQL (с ORDER BY) в своей команде bcp:

http://www.sqlteam.com/article/exporting-data-programatically-with-bcp-and-xp_cmdshell

, где у них есть следующий пример:

SET @bcpCommand = 'bcp "SELECT * FROM pubs..authors 
   ORDER BY au_lname" queryout "' 
2 голосов
/ 07 января 2010

Вы никогда не должны предполагать, что SQL SELECT (или bcp) будет возвращать значения в определенном порядке или в том же порядке, если вы не используете предложение ORDER BY.

Как правило, значения возвращаются в порядке на основе индекса в таблице.

Однако я видел случаи, когда значения не возвращались в порядке индекса. Похоже, что строки в кэше могут быть возвращены перед строками с диска, даже если строки на диске являются первыми в индексе.

...