oracle,insert 语句插入一条记录后要求,返回主键id値。

zhangweibing 2009-01-06 11:54:49
oracle数据库,表中有id(自增字段,主键), insert 语句插入一条记录后要求,返回当前插入记录的id値。
c#编程。如何解决?
谢谢!
...全文
4752 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
jvvj 2010-04-12
  • 打赏
  • 举报
回复
顶一下
itweichao 2009-12-10
  • 打赏
  • 举报
回复
sql="insert into [table](列1,列2) values ()";
//关键是后面直接加入
sql+=" SELECT @@IDENTITY as returnID";
sqlcommand cmd=new sqlcommand(sql,connection);
//这就是返回主键值
int returnID=Convert.ToInt32(cmd.ExecuteScalar()) ;
YnSky 2009-11-30
  • 打赏
  • 举报
回复
Up
IamaJ2EEprogrammr 2009-11-30
  • 打赏
  • 举报
回复
哇塞,这里好活跃。
jiang_jiajia10 2009-01-06
  • 打赏
  • 举报
回复
SELECT @@IDENTITY
sprc_lcl 2009-01-06
  • 打赏
  • 举报
回复 1
select sequence.currval from dual

hongqi162 2009-01-06
  • 打赏
  • 举报
回复 1
oracle里面没有自增字段,在oracle里面需要定义一个序列,你可以写一个存储过程定义一个输出参数

create sequence seqID
minvalue 1
maxvalue 999999999999999999999999999
start with 1
increment by 1
nocache
order;

create or replace procedure sp_insert(aName int,rst out int) is
begin
insert into tablename(id,name) values(seqID.nextval,aName);
rst:=seqID.currval;
end;
lovehongyun 2009-01-06
  • 打赏
  • 举报
回复
创建sequence,oracle里表没有自增列

用sequence即可.

create sequence seqID
minvalue 1
maxvalue 999999999999999999999999999
start with 1
increment by 1
nocache
order;

select seqID.nextval from dual//这样就会得到一个值
wuyq11 2009-01-06
  • 打赏
  • 举报
回复
没有自增字段,
创建序列号:
CREATE SEQUENCE 序列号的名称
INCREMENT BY 1
START WITH 1
MAXVALUE 99999
CYCLE NOCACHE;
使用触发器自增。
在查询最大值

62,196

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧