2013-10-31 46 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