天空是藍色的

          做好軟件為中國 #gcc -c helloworld.c -o helloworld.o //編譯目標文件 #gcc helloworld.o -o helloworld //編譯成可執行exe #helloworld //運行exe
          數據加載中……
          如何取得新增記錄的自動編號字段的值

          數據庫 MS-SQL server 2000
          表 Infos 有一自動編號字段 sid
          我用如下方法向表中新增一條記錄
          stmt = con.createStatement();
          stmt.executeUpdate(sql);
          有沒有辦法取得該新增記錄的自動編號字段sid的值?
          ASP有這樣的做法
          rs.open "select * from Infos where sid is null",conn,3,3
          rs.addnew
          rs("AA") = AA
          ..
          rs.update
          ''然后取得該記錄的sid的值
          SID = rs("sid")
          請教java里有沒有類似的方法?不要告訴我用取最大的值的方法。
          如果短時有多個新增記錄,用取最大值的方法可能不準確。
          請各位大俠幫忙看看,百分感謝~~!

          我的做法是,首先找到這個自增字段的名字,比如SEQ_AUTH_CERT_ID;
          如果要得到最新更新的id就首先
          String sql1="select SEQ_AUTH_CERT_ID.nextval from dual";
          去得到這個最新的id!然后再insert!

          要分兩部走的~~
          update 之后是不能直接獲得IDENTITY列的值的。
          你必須在select才能獲得。
          當然還有方法是一步可以實現的,先打開ResultSet
          設定游標類型是可修改的。
          此時你就可以獲得列的值,也可以對記錄進行修改。

          不同的數據庫有不同的方法.SQLServer可以執行insert語句后從系統變量@IDENTITY中取得主鍵值,Oracle可以從序列中取得就是樓上的Sequence.nextval后再插入到表中。

          INSERT INTO jobs (job_desc,min_lvl,max_lvl)
          VALUES ('Accountant',12,125)
          SELECT @@IDENTITY AS 'Identity',@@IDENTITY、SCOPE_IDENTITY 和 IDENT_CURRENT 函數類似。
          @@IDENTITY 和 SCOPE_IDENTITY 將返回在當前會話的所有表中生成的最后一個標識值。但是,SCOPE_IDENTITY 只在當前作用域內返回值,而 @@IDENTITY 不限于特定的作用域。
          IDENT_CURRENT 不受作用域和會話的限制,而受限于指定的表。IDENT_CURRENT 返回任何會話和任何作用域中為特定表生成的標識值。
          你可以看一下SQLServer的聯機幫助中的相關章節

          用insert 語句添加后,再select * from infos order by sid desc 再在結果集把第一條記錄拿出來(第一條就是新增記錄的sid)
          需要session

          posted on 2005-11-08 08:31 bluesky 閱讀(1914) 評論(0)  編輯  收藏 所屬分類: 關系數據庫


          只有注冊用戶登錄后才能發表評論。


          網站導航:
          博客園   IT新聞   Chat2DB   C++博客   博問  
           
          主站蜘蛛池模板: 黔西| 鞍山市| 临泽县| 大田县| 西青区| 汨罗市| 太保市| 河源市| 东乌| 康保县| 云安县| 合水县| 积石山| 玛纳斯县| 弥渡县| 萨迦县| 读书| 乐都县| 儋州市| 金塔县| 襄城县| 磐石市| 抚宁县| 富民县| 射阳县| 黄石市| 彩票| 阳西县| 潞城市| 广宁县| 浑源县| 宝清县| 普宁市| 镇雄县| 鄂托克旗| 长沙市| 自贡市| 理塘县| 德阳市| 大关县| 梁平县|