0

我正在尝试使用 C# 来实现这一点,将 csv 文件中的数据插入 Microsoft SQL Server。

我有一个没有标识列的 CSV 文件。我想将此 CSV 中的数据插入到 Microsoft SQL Server 上具有标识列的表中,但是,标识列未设置为 auto_increment。

有没有办法做到这一点?我查看BULK INSERT了 SQL,但我无法弄清楚如何让标识列正常工作。

我正在考虑连接到数据库和表以找出当前最大的 id 号是多少,然后修改 CSV 以包含标识列,BULK INSERT即新的 CSV。我认为这个想法可能有效,但我只是想知道是否有其他方法(更方便的方法)来解决问题。

4

1 回答 1

0

在 SQL Server 中,identity和自增是一回事(identity是自增的 SQL Server 实现)。

(参考:http ://social.msdn.microsoft.com/Forums/sqlserver/en-US/ef62d0c8-440f-4b27-8641-18ecd45d3f6c/what-is-the-difference-between-auto-increment-and-identity ?forum=transactsql )

此外,对于批量插入,我强烈建议使用SqlBulkCopy(built into System.Data)。这是一篇很好的文章,概述了如何使用它:https ://github.com/geersch/EntityFrameworkBulkCopy

请参阅此处以使用SqlBulkCopy身份插入:SqlBulkCopy Insert with Identity Column

SqlBulkCopyOptions.KeepIdentity如果您想从代码中指定标识值,或者只是从输入中排除标识列并使用常规选项让 SQL Server 根据自动增量自动分配它,则使用此选项。)

于 2013-11-05T16:22:55.953 回答