我有两个DataTable
,tblSoftware
和tblDeviceSoftware
设计如下:
tblSoftware
- > SoftwareID|SoftwareName|Version
tblDeviceSoftware
- > DeviceSoftwareID|DeviceID|SoftwareID|SoftwareName|Version
我有300-500条记录,我想在此方案中使用SQL BULK INSERT。如果存在相同的softwareName
,则不要插入它。我正在使用WCF服务来插入。我将在DeviceID
的sql中获得DeviceName
。除了逐行插入之外,将其插入数据库的最佳方式是什么。
答案 0 :(得分:0)
我使用.NET Framework中提供的SqlBulkCopy类取得了相当大的成功。
但是,对于SQL Bulk Insert或SqlBulkCopy,我不相信您可以有选择地确定将哪些记录添加到目标表。相反,源中的所有内容都会被添加(或尝试取决于密钥违规等)。
您可以做的是在SQL Server中创建不同的目标表,将数据批量插入此表,然后执行插入查询以仅将必要的记录插入目标表。
否则,您需要执行测试,以便将源数据更改为仅包含需要添加到目标表的记录。我的预感是这种方法比在SQL Server中作为插入语句的一部分执行此测试要慢。