在一次数据库调用中更新多个记录

本文关键字:更新 记录 调用 数据库 一次 | 更新日期: 2023-09-27 18:32:59

我在一个表中有大约 10,000 条记录。我获取代码内存中的所有记录并进行一些处理,并确定处理是否成功。因此,对于每条记录,我需要将类型 BIT 的列更新为 0 或 1。

处理完每个项目后,我真的不想每次都命中数据库,而是一次传递所有记录的位值进行更新。

有没有办法做到这一点或任何其他足够有效的方法。

在一次数据库调用中更新多个记录

尝试使用 SqlBulkCopy 类。

您可以使用它来处理将大量行有效地插入到数据库上的表中(例如,为此目的的临时表)。出于您的目的,听起来该表应该只包含您用于标识每一行的任何键以及位值。

然后,您可以执行 UPDATE 命令将该表与原始数据合并。

这样,您可以在一次操作(或至少少量操作...即使有SqlBulkCopy,您也可能发现将大型更新分成批是有利的),然后让 SQL Server 执行将位值复制回原始表的工作。