Chinaunix首页 | 论坛 | 博客
  • 博客访问: 43249
  • 博文数量: 33
  • 博客积分: 1480
  • 博客等级: 上尉
  • 技术积分: 360
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-17 16:06
文章分类

全部博文(33)

文章存档

2009年(2)

2008年(31)

我的朋友
最近访客

分类: Oracle

2008-09-11 13:11:43

sqlserver中的@@IDENTITY是返回最后插入的标识值,如果插入的是单行,则返回标识值(主键值),如果插入多行数据则返回多行标识值,@@IDENTITY存储最后一行的标识值。

oracle中对应的解决办法
1,插入单行数据
表tableA(f_id,f_name,f_dz)其中f_id是主键,自增长。v是一个number型的变量。
插入数据获得f_id值

insert into tableA(f_name,f_dz) values('圆圆','北京') returning f_id into v;


不仅仅能获得主键值,也可以获得其他列的值

insert into tableA(f_name,f_dz) values('圆圆','北京') returning f_name into v_char;


2,插入多行数据

可以使用序列来解决这个问题
表 xt_1,id是主键,建立序列xt_1_seq
向表中插入数据:



insert into xt_1 select * from xt_2;

select xt_1_seq.currval into v_id
这样最后一行的主键ID值就获得了
阅读(874) | 评论(0) | 转发(0) |
0

上一篇:ROWNUM的使用

下一篇:sqlserver中char和varchar

给主人留下些什么吧!~~