Поддерживает ли bcp out порядок строк при экспорте в файл данных?

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

  •  19-09-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

Я думаю, это произойдет, если вы используете инструкцию 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 "' 

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top