bcp out在导出到数据文件时是否保持行顺序?

时间:2010-01-06 20:15:18

标签: sql-server-2005 bcp

我需要将数据导出到一个巨大的表中的文件,该表只有一列但数千行,其中行的排序很重要。我正在使用bcp命令,如下所示     bcp DBNAME.dbo.tblName out mydata.dat -Uusername -Ppassword -c
我检查了10行的表格,我看到行的顺序保存在数据文件中。但是,如果行数超过10000,我可以假设bcp会保持顺序吗?

2 个答案:

答案 0 :(得分:7)

我认为如果你在bcp命令中使用sql语句(带有ORDER BY),它会是:

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 "' 

答案 1 :(得分:2)

除非使用ORDER BY子句,否则不应假设SQL SELECT(或bcp)将以特定顺序或相同顺序返回值。

通常,根据表中的索引按顺序返回值。

但是,我看到过没有以索引顺序返回值的情况。即使磁盘上的行是索引中的第一行,也可能在磁盘行之前返回缓存中的行。