sql-server - 如何使用 SqlBulkCopy 保持行顺序?

标签 sql-server excel import export sqlbulkcopy

我使用 SqlBulkCopy 以编程方式将数据从 Excel 导出到 SQL Server 2005。它工作得很好,我遇到的唯一问题是它没有保留 Excel 文件中的行顺序。我没有可供排序的列,我只想按照 Excel 电子表格中显示的顺序插入记录。

我无法修改 Excel 文件,必须使用现有的内容。按任何现有列排序都会破坏顺序。

请帮忙。

附注最终将 ID 列插入到电子表格中,看起来无法在导出/导入期间保留顺序

最佳答案

我不认为行排序是由 SQL 指定或保证的,除非您使用“ORDER BY”子句。

摘自 Bill Vaughn ( http://betav.com/blog/billva/2008/08/sql_server_indexing_tips_and_t.html ) 的帖子:

Using Order By: Even when a table has a clustered index (which stores the data in physical order), SQL Server does not guarantee that rows will be returned in that (or any particular) order unless an ORDER BY clause is used.

另一个包含信息的链接:

http://sqlblogcasts.com/blogs/simons/archive/2007/08/21/What-is-the-position-of-a-row--.aspx

关于sql-server - 如何使用 SqlBulkCopy 保持行顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/189694/

相关文章:

sql - 使用具有特定条件的 LAG 获取上一行值

javascript - Javascript 中的 PMT 函数

vba - 如果> 0,Excel VBA将单元格值复制到左侧的单元格

javascript - 动态引用导入

database - 在不指定列详细信息的情况下从命令行将 CSV 文件加载到 Oracle 数据库的新表中的简便方法

javascript - meteor :导入目录 - 所需方法的模块化导入

带有最新记录的 SQL 子查询

sql - 为什么我不能在 BEGIN ... END block 内创建 View

SQL Server : how to select a fixed amount of rows (select every x-th value)

VBA 代码在完成后停止运行当前代码