SQL Server 2005数据库批量更新解决办法

作者:feng 来源:blogjava 时间:2009-04-11 16:12:00 

这些天因为有数据割接的需求,于是有要写关于批量更新的程序。我们的数据库使用的是SQLSERVER2005,碰到了一些问题来分享下。

首先注意Statement 和PreparedStatement的问题

Statement sm = cn.createStatement();

sm.addBatch(sql1);

sm.addBatch(sql2);

...

sm.executeBatch()

用Statement的好处就是每次可以直接传一个SQL语句进去,不用管那么多。可是在数据量比较大的时候,应该会对效率有影响。不建议使用。

PreparedStatement ps = cn.preparedStatement(sql);

{

 ps.setXXX(1,xxx);

 ...

 ps.addBatch();

}

ps.executeBatch();

PreparedStatement是会预编译的,只要一条SQL,不断动态设值,然后addBatch(),在数据量大的时候比较好,非常建议使用。

还有就是JDBC的驱动问题,很多同志可能还是在用2000的驱动呢,没有用批量更新的程序没有多大问题,可是一旦用了批量更新,出现很多问题,

反正数据库很卡,慢。还可以更新不了哦。

我强烈建议大家更新JDBC驱动。

但是如果出现

SQLServerException: sp_cursoropen/sp_cursorprepare: 该语句参数只能是一个批或带有单个 SELECT 语句的存储过程,且不带 FOR BROWSE、COMPUTE BY 或变量赋值。

应该就是JDBC的版本问题,1.0的驱动有这个问题,好像不支持批量更新,我建议大家使用1.2

我测试过了,完全没有问题!

提供一些数据连接参数

jdbc.driverClassName:com.microsoft.sqlserver.jdbc.SQLServerDriver

jdbc.url:jdbc:sqlserver://127.0.0.1:1444;databaseName=fax;selectMethod=cursor;

我上传了1.2的驱动 点击下载

标签:SQL,Server,批量,数据库,解决办法
0
投稿

猜你喜欢

  • sqlserver 脚本和批处理指令小结

    2012-05-22 18:56:55
  • 高效交换XML文档

    2008-01-03 14:16:00
  • 如何使用数据绑定控件实现不换页提交数据?

    2010-05-16 15:17:00
  • XAMPP和Mysql共存的方法

    2010-12-03 16:34:00
  • 巧用MySQL InnoDB引擎锁机制解决死锁问题

    2008-12-19 17:24:00
  • ASP获取当前页面URL地址(带参数)的方法

    2010-01-14 19:40:00
  • FrontPage XP设计教程1——站点初建与管理

    2008-10-11 12:13:00
  • 无图片CSS圆角的五个实例

    2008-08-02 12:18:00
  • MSSQL数据库还原图解教程

    2009-01-12 17:58:00
  • 设计师的职业规划

    2009-08-31 12:52:00
  • 也谈谈DIV+CSS的牛角尖

    2007-11-16 16:12:00
  • CSS hack浏览器兼容一览表

    2007-08-14 10:35:00
  • FCKeditor 编辑器实战技巧 Ⅰ

    2008-10-08 10:22:00
  • [翻译]标记语言和样式手册 Chapter 4 引用

    2008-01-20 14:19:00
  • asp如何取回已忘记的密码?

    2010-05-13 16:33:00
  • 如何快速定位页面中复杂 CSS BUG 问题

    2009-01-15 12:23:00
  • 如何使用数组来显示下拉菜单?

    2010-05-16 15:19:00
  • 用CSS实现柱状图(Bar Graph)的方法(二)—基于表格元素的柱状图

    2008-05-26 13:23:00
  • FSO中的SubFolders 属性介绍

    2008-01-05 13:57:00
  • 用户的期望以及背后真正的需求

    2009-06-19 12:39:00
  • asp之家 网络编程 m.aspxhome.com