如何针对现有数据库数据批量插入和验证数据

时间:2014-09-09 09:21:55

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

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

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

是否有一个我不熟悉的过程?

1 个答案:

答案 0 :(得分:0)

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

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

您可以在块中执行此操作以避免服务器负载,但这绝不是一个快速解决方案,因此SSIS将更受欢迎