我正在使用SQL Server Management Studio。我有表名爲faculty,其屬性是id
,Name
和dean
。我想在此表中獲取最後插入的記錄ID。從上次插入的行中選擇ID
如:
id Name dean
1 abc xyz
2 efg sss
3 ert yui
我只是想只得到第3號,沒有第三排。 在這種情況下,最後插入的是3。
我正在使用SQL Server Management Studio。我有表名爲faculty,其屬性是id
,Name
和dean
。我想在此表中獲取最後插入的記錄ID。從上次插入的行中選擇ID
如:
id Name dean
1 abc xyz
2 efg sss
3 ert yui
我只是想只得到第3號,沒有第三排。 在這種情況下,最後插入的是3。
您可以在存儲過程中使用SCOPE_IDENTITY()
來獲取最後插入的記錄ID。
SELECT SCOPE_IDENTITY() :- It will returns the last identity value inserted into an
identity column in the same scope.
SELECT @@IDENTITY :- @@IDENTITY will return the last identity value entered
into a table in your current session.
SELECT IDENT_CURRENT(‘tablename’) :- IDENT_CURRENT is not limited by scope and
session; it is limited to a specified table.
還有其他的選擇也如
1. Select Top 1 id From Table Order by id desc
2. SELECT max(id) FROM table
請參閱MSDN http://msdn.microsoft.com/en-us/library/ms190315.aspx 和 http://blog.sqlauthority.com/2007/03/25/sql-server-identity-vs-scope_identity-vs-ident_current-retrieve-last-inserted-identity-of-record/
'@@ IDENTITY'將返回任何表中任何會話中最後生成的Identity值,'IDENT_CURRENT('TableName')'將返回最後生成的Identity值任何會話中的TableName,最後是'SCOPE_IDENTITY()'將返回當前會話中最後生成的Identity值。最安全的選項是'SCOPE_IDENTITY()',但是如果你正在處理多個插入,那麼'OUTPUT'子句是你的朋友。 –
可以使用 @@ IDENTITY,SCOPE_IDENTITY,IDENT_CURRENT
'select max(id)as last_id from faculty' –