使用bcp导入和导出,只将新的或更新的记录导入sql数据库

时间:2011-04-21 06:45:10

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

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

的ItemID

178

212

3423

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

的ItemID

178

212

3423

4676

782

2308

另外,我使用的是Sql Server Express,那么使用Scheduling Jobs等可以自动执行此过程吗?

1 个答案:

答案 0 :(得分:1)

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

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

  1. 重命名文件(因此不再写入文件,写入文件的进程将创建新文件)
  2. 将文件导入数据库
  3. 删除/存档文件