Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何根据现有数据库数据批量插入和验证数据_Sql Server_Linq_Csv_Linq To Sql_Webforms - Fatal编程技术网

Sql server 如何根据现有数据库数据批量插入和验证数据

Sql server 如何根据现有数据库数据批量插入和验证数据,sql-server,linq,csv,linq-to-sql,webforms,Sql Server,Linq,Csv,Linq To Sql,Webforms,这是我的情况,我的客户希望从csv文件中批量插入100000+行到数据库中,这很简单,但需要根据数据库中已有的数据检查值(该产品类型存在吗?该产品是否仍在销售?等等)。更糟糕的是,这些文件也会在白天上传到实时系统中,所以我需要确保我没有长时间锁定任何表。插入的数据也将分布在多个表中 我一直在将日期添加到一个staging表中,这需要几秒钟的时间,然后我尝试创建一个WebService来开始使用Linq处理该表,并用无效标志标记任何错误的行(这可能需要一些时间)。验证完成后,我需要获取有效的行,并

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

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


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

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

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

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

SSIS?……..看起来我要查看SSITSQL合并语句?