2009-05-28 81 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,通常並不是真正的原因你需要這個。