2009-05-28 75 views
0

日之前提交自动增加我有[INT UnicLine标识(1,1)]提起增加他的价值如何读取插入到数据库

我怎样才能读取其befor插入新记录到数据库中的价值?

回答

4

你不应该需要这个,什么都可以是输出例如像新建ID:

INSERT INTO [table] 
SELECT field1, field2; 
SELECT SCOPE_IDENTITY(); 

,让您的ADO/ORM该ID。

但是,为了回答你的问题,你可以这样做:

SELECT top 1 [UnicLine] + 1 as newIDValue FROM [table] ORDER BY [UnicLine] DESC; 

或简单

SELECT MAX([UnicLine]) + 1 as newIDValue FROM [table] 

不作为问题的一部分,但read about

SCOPE_IDENTITY() vs @@IDENTITY vs IDENT_CURRENT('tablename') 

知道差异和通道OOSE右一到USE_

+0

Is is @SCOPE_IDENTITY or SCOPE_IDENTITY()? – 2009-05-28 06:05:50

1

如果你只是想看到的最高值,是目前在该表中,你可以这样做:

select max(UnicLine) from mytable 

然而,这并不一定会告诉你什么是下一个值将在身份领域。如果有回滚的插入,则每个标识都会增加,因此您的下一个插入可能会获得大于当前max + 1的值。我同意balexandre,通常并不是真正的原因你需要这个。