SQL Server
SQL Server Difference between scope_identity (),@@identity, ident_current
AWS-in
2015. 4. 20. 13:08
[참고문서]
http://www.leadfirstsql.com/2015/04/difference-between-scopeidentity.html
http://dotnetconcepts-ashok.blogspot.kr/2013/06/difference-between-identity.html
http://www.sqlservergeeks.com/ident_current-vs-scope_identity-vs-identity-vs-identity-in-sql-server/
해당하는 레코드의 입력된 IDentity 최종 값 리턴 해준다.
차이점은 무엇일까?
SELECT @@IDENTITY
현재 세션에서 동작하는 모든 실행쿼리의 최종의 Identity 값을 리턴
SELECT SCOPE_IDENTITY()
현재 세션에서만의 최종 Identity 값을 리턴
SELECT IDENT_CURRENT('tablename')
어느 세션이든 해당 테이블의 최종 Identity 값을 리턴
결론적으로 @@IDENTITY 는 해당 세션에서 실행하는 모든 실행 순서의 마지막의 Identity 값을 가져온다. 다시 말해 한 세션에서 호출되는 서브프로시져, 트리거 등에서 내부적으로 재 호출할때 최종으로 호출되는 마지막 값을 리턴해준다.
위 예제를 해보면 이해가 될 것이다.