Plsql 什么是甲骨文';s与SQL Server的对应项';s@@IDENTITY?
Oracle与SQL Server的Plsql 什么是甲骨文';s与SQL Server的对应项';s@@IDENTITY?,plsql,sql-server-2008-r2,oracle11g,Plsql,Sql Server 2008 R2,Oracle11g,Oracle与SQL Server的@@IDENTITY对应的是什么?如果Oracle没有IDENTITY列,您通常会为每个表创建一个序列,并使用该序列填充主键。假设您已经这样做了,您可以获取序列的currval,以获取当前会话最近生成的序列值 SQL> create table foo( 2 col1 number primary key, 3 col2 varchar2(10) 4 ); Table created. SQL> create sequ
@@IDENTITY
对应的是什么?如果Oracle没有IDENTITY列,您通常会为每个表创建一个序列,并使用该序列填充主键。假设您已经这样做了,您可以获取序列的currval
,以获取当前会话最近生成的序列值
SQL> create table foo(
2 col1 number primary key,
3 col2 varchar2(10)
4 );
Table created.
SQL> create sequence foo_seq;
Sequence created.
SQL> ed
Wrote file afiedt.buf
1 create or replace trigger foo_trg
2 before insert on foo
3 for each row
4 begin
5 :new.col1 := foo_seq.nextval;
6* end;
SQL> /
Trigger created.
SQL> insert into foo( col2 )
2 values( 'foo' );
1 row created.
SQL> insert into foo( col2 )
2 values( 'bar' );
1 row created.
SQL> select foo_seq.currval
2 from dual;
CURRVAL
----------
2
因为Oracle实际上没有
IDENTITY
columns的概念,所以它没有相应的概念。在Oracle中,您通常使用序列
来获取连续的、唯一的数字,以便在表中使用。@marc_-s-哦,好的,谢谢……答案帮助我解决了我的要求,作为等效的解决方案。