[英]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.