我需要将数据导出到一个巨大的表中的文件,该表只有一列但数千行,其中行的排序很重要。我正在使用bcp命令,如下所示
bcp DBNAME.dbo.tblName out mydata.dat -Uusername -Ppassword -c
我检查了10行的表格,我看到行的顺序保存在数据文件中。但是,如果行数超过10000,我可以假设bcp会保持顺序吗?
答案 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)将以特定顺序或相同顺序返回值。
通常,根据表中的索引按顺序返回值。
但是,我看到过没有以索引顺序返回值的情况。即使磁盘上的行是索引中的第一行,也可能在磁盘行之前返回缓存中的行。