在一个数据库调用中更新多条记录
问题描述:
我在表中有大约10,000条记录。我在代码存储器中获取所有记录并进行一些处理,并决定处理是否成功。因此,对于每条记录,我需要将BIT
类型的列更新为0或1.在一个数据库调用中更新多条记录
处理完每个项目后,我确实不希望每次都击中数据库,而是将所有立即记录更新。
有没有办法做到这一点或任何其他有效的方法。
答
尝试使用SqlBulkCopy
类。
您可以使用它来有效地将大量行插入数据库的表(例如为此目的的临时表)。为了您的目的,听起来这张表应该只是有您用来识别每行的关键字以及位值。
然后,您可以执行UPDATE命令将该表与原始数据合并。
通过这种方式,您可以在一次操作中将所有数据传递给服务器(或至少少量的操作...即使使用SqlBulkCopy
,您可能会发现将批量更新分为多个优点),然后让SQL Server执行将位值复制回原始表的工作。
+0
听起来很不错。让我执行并更新这个。 – Saksham 2014-12-04 09:14:37
降票的原因是什么? – Saksham 2014-12-04 08:37:42
当你在内存中进行所有处理时,为什么你使用数据库而不是数据文件?或DB中的单个二进制记录/单元格。 – i486 2014-12-04 08:56:54
@ i486,因为db中的数据是由另一个应用程序在不同平台上输入的。 – Saksham 2014-12-04 09:13:25