使用sql批量复制为依赖表

时间:2013-04-10 13:54:31

标签: c# .net sql-server bulkinsert

我有两个DataTabletblSoftwaretblDeviceSoftware设计如下:

tblSoftware - > SoftwareID|SoftwareName|Version

tblDeviceSoftware - > DeviceSoftwareID|DeviceID|SoftwareID|SoftwareName|Version

我有300-500条记录,我想在此方案中使用SQL BULK INSERT。如果存在相同的softwareName,则不要插入它。我正在使用WCF服务来插入。我将在DeviceID的sql中获得DeviceName。除了逐行插入之外,将其插入数据库的最佳方式是什么。

1 个答案:

答案 0 :(得分:0)

我使用.NET Framework中提供的SqlBulkCopy类取得了相当大的成功。

但是,对于SQL Bulk Insert或SqlBulkCopy,我不相信您可以有选择地确定将哪些记录添加到目标表。相反,源中的所有内容都会被添加(或尝试取决于密钥违规等)。

您可以做的是在SQL Server中创建不同的目标表,将数据批量插入此表,然后执行插入查询以仅将必要的记录插入目标表。

否则,您需要执行测试,以便将源数据更改为仅包含需要添加到目标表的记录。我的预感是这种方法比在SQL Server中作为插入语句的一部分执行此测试要慢。