我想更新下面的多行
update mytable set s_id = {0} where id = {1}
(这里s_id是基于一些复杂的逻辑进行评估的).
出于性能原因,更新应分批进行.有没有办法批量更新语句并通过单个执行语句执行批处理?我知道在JAVA中我们可以通过JDBC来做到这一点.在C#中有类似的方法吗?
提前致谢
解决方法
是的,你可以使用
SqlDataAdapter.
sqlDataAdapter具有InsertCommand和UpdateCommand属性,允许您指定用于将新行插入到数据库中的sqlCommand和sqlCommand,以分别更新数据库中的行.
然后,您可以将DataTable传递给数据库的Update方法,并将语句批处理到服务器 – 对于作为新行的DataTable中的行,它执行INSERT命令,对于执行UPDATE命令的修改行.
您可以使用UpdateBatchSize属性定义批量大小.
这种方法允许您处理大量数据,并允许您以不同的方式处理错误,即,如果特定更新遇到错误,您可以告诉它不要抛出异常,而是继续执行剩余的通过设置ContinueUpdateOnError属性进行更新.