0

我有两个DataTabletblSoftware设计tblDeviceSoftware如下:

tblSoftware -> SoftwareID|SoftwareName|Version

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

我有 300-500 条记录,我想在这种情况下使用SQL BULK INSERT。如果同样softwareName存在,则不要插入它。我正在使用 WCF 服务插入。我将DeviceID通过DeviceName. 除了逐行插入之外,将它插入数据库的最佳方式是什么。

4

1 回答 1

0

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

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

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

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

于 2013-04-10T14:32:03.363 回答