【问题标题】:Uploading a csv file to sql server - Identity problem将 csv 文件上传到 sql server - 身份问题
【发布时间】:2011-06-06 13:23:17
【问题描述】:

给定 CSV 文件中的列结构:

First_Name, Last_Name, Date_Of_Birth

还有一个结构为的SQL Server表

ID(PK) | First_Name | Last_Name | Date_Of_Birth

(字段 ID 是一个自增 1 的标识)

我如何安排它以使 SQL Server 不会尝试将 csv 文件中的 First_Name 列插入 ID 字段?

有关信息,csv 被加载到 DataTable 中,然后使用 SqlBulkCopy 复制到 SQL Server

我应该在导入之前修改 csv 文件添加 ID 列(目标表在导入之前被截断,因此无需担心重复的键值。)或者可能在数据表中添加一个 id 列?

或者我可能错过了 Sql Server 中的某个设置?

【问题讨论】:

    标签: c# .net sql-server csv sqlbulkcopy


    【解决方案1】:

    【讨论】:

    • 只有当列实际上已经在 CSV 文件中时才有效,不是吗?
    • 您应该为 First_Name、Last_Name、Date_Of_Birth 添加映射。 ID 将自动生成,因为它是一个 ID 列。
    • 谢谢。我将使用 Tony 的解决方案,因为有些 CSV 文件有很多列。为所有这些添加列映射需要很长时间!
    【解决方案2】:

    您应该将 ID 列添加到数据表中,但不必担心使用 CSV 中的数据填充该字段。

    完成后,数据应该可以正常排列,并且由于 ID 是具有自动增量的标识,因此您应该可以将 CSV 加载到数据库中。

    【讨论】:

    • 谢谢。对于遇到此问题的其他人,请使用 DataTable.Columns.Add("ID").SetOrdinal(0) 将 ID 列添加到数据表的开头。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-18
    相关资源
    最近更新 更多