【问题标题】:import only new or updated records into sql database, using bcp to import and export只将新的或更新的记录导入sql数据库,使用bcp导入导出
【发布时间】:2011-08-10 01:51:46
【问题描述】:

我有一个 csv 文件。现在,我必须将此文件中的所有数据导入我的 sql 数据库 mdf 文件。

物品编号

178

212

3423

我会简单地从 bcp 进行导入。但是,一段时间后,文件会用一些新记录更新,我希望这次我只会获取新记录并插入到 sql 数据库中。这个怎么做?我是否必须匹配现有的 ItemID,或者在 ItemID 列上使用主键,何时会自动拒绝重复记录,或者我应该添加一个新列作为 DateTimeofInsert,然后相应地进行,请建议?:

物品编号

178

212

3423

4676

782

2308

另外,我正在使用 Sql Server Express,那么是否有任何选项可以通过使用调度作业等来自动化这个过程?

【问题讨论】:

    标签: sql-server sql-server-2005 import sql-server-express bcp


    【解决方案1】:

    您可以只跟踪每次处理的行号。因此,每次您的进程获取文件以将新行加载到数据库中时,您都会从上次访问的文件中的下一行开始。保存任何匹配。

    或者,每次处理文件时,都可以采用这种方法:

    1. 重命名文件(这样就不会再写入了,写入文件的进程会创建一个新文件)
    2. 将文件导入数据库
    3. 删除/存档文件

    【讨论】:

    • @AdaTheDev-o,我应该在 csv 文件中添加一个新列“LineNumber”。在那之后我将如何跟踪,请帮我写代码,先生。我必须使用 ROWNUMBER 等吗?或更新? ——
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-11
    • 2016-10-29
    • 2011-12-09
    • 1970-01-01
    • 1970-01-01
    • 2020-09-11
    • 1970-01-01
    相关资源
    最近更新 更多