Sql server 如何根据现有数据库数据批量插入和验证数据
这是我的情况,我的客户希望从csv文件中批量插入100000+行到数据库中,这很简单,但需要根据数据库中已有的数据检查值(该产品类型存在吗?该产品是否仍在销售?等等)。更糟糕的是,这些文件也会在白天上传到实时系统中,所以我需要确保我没有长时间锁定任何表。插入的数据也将分布在多个表中 我一直在将日期添加到一个staging表中,这需要几秒钟的时间,然后我尝试创建一个WebService来开始使用Linq处理该表,并用无效标志标记任何错误的行(这可能需要一些时间)。验证完成后,我需要获取有效的行,并将这些行更新/添加到相应的表中Sql server 如何根据现有数据库数据批量插入和验证数据,sql-server,linq,csv,linq-to-sql,webforms,Sql Server,Linq,Csv,Linq To Sql,Webforms,这是我的情况,我的客户希望从csv文件中批量插入100000+行到数据库中,这很简单,但需要根据数据库中已有的数据检查值(该产品类型存在吗?该产品是否仍在销售?等等)。更糟糕的是,这些文件也会在白天上传到实时系统中,所以我需要确保我没有长时间锁定任何表。插入的数据也将分布在多个表中 我一直在将日期添加到一个staging表中,这需要几秒钟的时间,然后我尝试创建一个WebService来开始使用Linq处理该表,并用无效标志标记任何错误的行(这可能需要一些时间)。验证完成后,我需要获取有效的行,并
是否有一个我不熟悉的过程?对于较小的数据集,我建议
IF EXISTS (SELECT blah FROM blah WHERE....)
UPDATE (blah)
ELSE
INSERT (blah)
您可以分块执行此操作以避免服务器负载,但这绝不是一个快速的解决方案,因此SSIS更可取SSIS?……..看起来我要查看SSITSQL合并语句?