【问题标题】:How to bulk insert and validate data against existing database data如何针对现有数据库数据批量插入和验证数据
【发布时间】:2014-09-09 09:21:54
【问题描述】:

这是我的情况,我的客户希望将 100,000 多行从 csv 文件批量插入到数据库中,这很简单,但需要根据数据库中已有的数据检查这些值(这种产品类型是否存在?这个产品还卖吗?等)。更糟糕的是,这些文件也会在白天上传到实时系统中,所以我需要确保我不会长时间锁定任何表格。插入的数据也将分布在多个表中。

我一直在将日期添加到临时表中,这需要几秒钟,然后我尝试创建一个 WebService 以开始使用 Linq 处理表并用无效标志标记任何错误行(这可能需要一些时间)。验证完成后,我需要获取有效行并将行更新/添加到相应的表中。

是否有我不熟悉的流程?

【问题讨论】:

  • SSIS?.......
  • 看起来我会调查 SSIS
  • TSQL MERGE 语句?

标签: sql-server linq csv linq-to-sql webforms


【解决方案1】:

对于较小的数据集,我建议

IF EXISTS (SELECT blah FROM blah WHERE....) 
UPDATE (blah) 
ELSE 
INSERT (blah)

您可以分块执行此操作以避免服务器负载,但这绝不是一个快速的解决方案,因此 SSIS 会更好

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多