我尝试使用C#实现此目的,将数据从csv文件插入Microsoft SQL Server。
我有一个没有标识列的CSV文件。我想将此CSV中的数据插入到具有标识列的Microsoft SQL Server上的表中,但是,标识列未设置为auto_increment。
有没有办法实现这个目标?我在SQL中查看BULK INSERT
,但我无法弄清楚如何让标识列正常工作。
我正在考虑连接到数据库和表以查找当前最大的ID号,然后修改CSV以包含标识列BULK INSERT
新CSV。我认为这个想法可能有用,但我只是想知道是否有其他方法(更方便的方法)来解决问题。
答案 0 :(得分:0)
在SQL Server中,identity
和自动增量是相同的(identity
是自动增量的SQL Server实现。)
此外,对于批量插入,我强烈建议您使用SqlBulkCopy
(内置于System.Data
)。这篇文章概述了如何使用它:http://cgeers.com/2011/05/19/entity-framework-bulk-copy/
请参阅此处,了解SqlBulkCopy
使用身份插页:SqlBulkCopy Insert with Identity Column
(如果要从代码中指定标识值,请使用SqlBulkCopyOptions.KeepIdentity
,或者只是从输入中排除标识列,并使用常规选项让SQL Server根据自动增量自动分配它。)