Click here to Skip to main content
15,885,757 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
See more:
Need Differences on
@@IDENTITY vs SCOPE_IDENTITY() vs IDENT_CURRENT

Thanx on advance
~JK
Posted

The basic difference:
@@IDENTITY:
Returns the last identity value generated for any table in the current session, across all scopes.

SCOPE_IDENTITY
Returns the last identity value generated for any table in the current session and the current scope.

IDENT_CURRENT:
Returns the last identity value generated for a specific table in any session and any scope.

For more information about this, try google[^].


--Amit
 
Share this answer
 
Comments
__TR__ 31-Aug-12 7:46am    
Simple explanation. 5ed!
_Amy 31-Aug-12 7:59am    
Thanks. :)
 
Share this answer
 
hi,

@@IDENTITY will return you last inserted row value.
SCOPE_IDENTITY()will return your current table inserted value.

For Example,
I have one table 'ABC' in which i add one record. Its primary key value i will return and suppose that is 100. Now there is one trigger in inserting row of table ABC. Using that trigger suppose i am going in insert record in Table 'XYZ'. That row is suppose 200.

Now if you user @@IDENTITY then it will return 200. Last inserted value.
if you user SCOPE_IDENTITY()then it will give you 100.

I hope you will get idea after this example.

Thanks,
Viprat
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900