我需要从一个只有一列但有数千行的大表中将数据导出到一个文件,其中行的顺序很重要。我正在使用 bcp 命令,如下所示,
bcp DBNAME.dbo.tblName out mydata.dat -Uusername -Ppassword -c
我检查了有 10 行的表,我发现数据文件中维护了行的顺序。但是如果行数超过 10000,我可以假设 bcp 会保持顺序吗?
问问题
4584 次
2 回答
8
我认为如果您ORDER BY
在 bcp 命令中使用 sql 语句(with )会这样:
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 "'
于 2010-01-06T20:25:14.187 回答
3
除非您使用 ORDER BY 子句,否则您永远不应假设 SQL SELECT(或 bcp)将以特定顺序或相同顺序返回值。
通常,这些值是根据表上的索引按顺序返回的。
但是,我看到了未按索引顺序返回值的情况。即使磁盘上的行是索引中的第一行,缓存中的行似乎也可能在磁盘中的行之前返回。
于 2010-01-06T21:44:40.783 回答