簡體   English   中英

批量將CSV數據插入SQL Server數據庫

[英]Bulk Insert CSV data Into a SQL Server database

我正在嘗試使用C#來實現此目的,以將csv文件中的數據插入Microsoft SQL Server。

我有一個沒有標識列的CSV文件。 我想將此CSV數據插入到Microsoft SQL Server上具有標識列的表中,但是,標識列未設置為auto_increment。

有沒有辦法做到這一點? 我研究了SQL中的BULK INSERT ,但無法弄清楚如何使Identity列正常工作。

我正在考慮連接到數據庫和表,以找出當前最大的ID號是什么,然后修改CSV以包括標識列,然后大BULK INSERT新的CSV。 我認為這個想法可能有用,但是我只是想知道是否還有其他方法(更方便的方法)來解決問題。

在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 (內置於System.Data )。 這是一篇很好的文章,概述了如何使用它: http : //cgeers.com/2011/05/19/entity-framework-bulk-copy/

請參見此處,以將SqlBulkCopy與標識插入一起使用: SqlBulkCopy與標識列一起插入

(如果要從代碼中指定標識值,請使用SqlBulkCopyOptions.KeepIdentity ,或僅從輸入中排除標識列,並使用常規選項讓SQL Server根據自動增量自動分配它。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM