zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

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

2023-03-31 11:12:00 时间

SQL Server 2005数据库功能性是还算很好的,技术含量也是相当高的,本文将为大家介绍SQL Server 2005数据库批量更新的解决方案。

首先注意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;

通过上文的学习,大家只是从理论上知道了SQL Server 2005数据库批量更新是怎么回事,最终还是要将理论付诸于实践,让文中的理论知识真正成为您的东西。

【编辑推荐】

  1. SQL Server 2005的动态管理对象
  2. 如何在SQL Server 2005中为安装程序增加计数器注册表项值
  3. SQL Server 2005的各种版本所支持的功能
  4. 完全卸载SQL Server 2005的实现方法