将 csv 文件上传到 sql server - 身份问题
给定 CSV 文件中的列结构:
First_Name, Last_Name, Date_Of_Birth
以及 SQL Server 表,其结构为
ID(PK) | First_Name | Last_Name | Date_Of_Birth
(字段 ID 是自动增量为 1 的标识)
我如何安排它,以便 SQL Server 不会尝试插入 First_Name 列从 csv 文件导入 ID 字段?
有关信息,将 csv 加载到 DataTable 中,然后使用 SqlBulkCopy 复制到 SQL Server
我是否应该在导入之前修改 csv 文件添加 ID 列(目标表在导入之前被截断,因此无需担心重复的键值.)或者也许向数据表添加一个 id 列?
或者 Sql Server 中是否有我可能错过的设置?
Given a column structure in a CSV file of:
First_Name, Last_Name, Date_Of_Birth
And a SQL Server table with a structure of
ID(PK) | First_Name | Last_Name | Date_Of_Birth
(Field ID is an Identity with an auto-increment of 1)
How do i arrange it so that SQL Server does not attempt to insert the First_Name column from the csv file into the ID field?
For info the csv is loaded into a DataTable and then copied to SQL Server using SqlBulkCopy
Should i be modifying the csv file before the import add the ID column (The destination table is truncated prior to import, so no need to worry about duplicate key values.) Or perhaps adding an id column to the Datatable?
Or Is there a setting in Sql Server that i may have missed?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用 SqlBulkCopy.ColumnMappings
http://msdn.microsoft.com /en-us/library/system.data.sqlclient.sqlbulkcopycolumnmapping.aspx
Use SqlBulkCopy.ColumnMappings
http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlbulkcopycolumnmapping.aspx
您应该将 ID 列添加到数据表中,但不必担心使用 CSV 中的数据填充该字段。
完成后,数据应该可以很好地排列,并且由于 ID 是具有自动增量的身份,因此您应该可以将 CSV 加载到数据库中。
You should add the ID column to the datatable, but do not worry about populating that field with data from the CSV.
Once that is done the data should line up fine and since ID is a Identity with Auto-Increment you should be fine with loading the CSV into the DB.