微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SQLServer2000 插入数据后或得其ID值

第一种方法
可以用select @@IDENTITY sql语句,不过他只对本连接刚刚递交的insert语句返回结果,否则返回0,具体写法如下:
Statement st=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
st.executeUpdate("insert into yourtable(col1) values('hello')");
ResultSet rs=st.executeQuery("select @@IDENTITY as id");
int id=0;
if(rs.next()){
id=rs.getInt("id");
}
这样就可以得到刚刚插入记录的自增id,不过如果用PreparedStatement或者ResultSet的insertRow()返回的是0

第二种方法
还可以用Statement.RETURN_GENERATED_KEYS(小黑猪和小白猪用的是这一种)
public static PreparedStatement getPstmt(Connection conn,String sql,Object[] params) {
  PreparedStatement pstmt = null;
  if(sql != null && !sql.equals("")) {
   if(params == null) {
    params = new Object[0];
   }
   try {
    pstmt = conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);
    for(int i=0;i<params.length;i++) {
     pstmt.setobject((i+1),params[i]);
    }
    pstmt.execute();
   } catch (sqlException e) {
    e.printstacktrace();
   }
  }
  return pstmt;
 }

public static ResultSet getRsId(PreparedStatement pstmt) throws sqlException {
  return pstmt.getGeneratedKeys();  } 就是这样……嘿嘿……

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐