2013-10-31 30 views

回答

2

如果主键列被声明为IDENTITY,那么我没有看到一种方法来获取当前值,除了调用另一个答案中描述的IDENTITY(),它没有给出答案具体的表格。

另一种方法是创建主键列以使用特定的序列生成器而不是IDENTITY。然后您可以从INFORMATION_SCHEMA.SEQUENCE表中选择序列的当前值。

下面的示例显示了这将如何工作。

create sequence test_seq; 

create table test (
    id integer generated by default as sequence test_seq, 
    value varchar(10)); 

insert into test (value) values ('foo'); 
insert into test (value) values ('bar'); 
insert into test (value) values ('bash'); 

select * from test; 
    id value 
    0 'foo' 
    1 'bar' 
    2 'bash' 

select next_value from information_schema.sequences where sequence_name = 'TEST_SEQ' 
    3