336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

MSSQL @@IDENTITY , SCOPE_IDENTITY, IDENT_CURRENT 차이

 

@@IDENTITY

@@의 의미는 세션이다. 즉 해당 세션에서 테이블에 insert 된 최종값을 의미한다.

멀티스레팅에서 엉뚱한 값이 들어갈 확률이 높다.

 

IDENT_CURRENT('테이블명')

세션에 상관없이 해당 테이블에 대한 최종값 또는 들어갈 값을 의미한다.

다른 IDENTITY 와 다르게 데이터 입력전에 그 값을 알 수 있다.

하지만 테으블 전체에 대한 값을 의미하므로 1인용 시스템에나 적합하다.

 

SCOPE_IDENTITY()

마지막으로 해당 프로세스 + 해당 세션의 최종 IDENTITY 를 가져온다.

이 함수가 실행되는 곳이 SP 이거나 FN 이거나 TRIGGER 일 수도 있다. 그렇다면 해당 프로세스+세션으로 제한을 걸고 IDENTITY 를 가져오기 때문에 실시간 키코드를 리턴해야하는 상황에서 가장 신뢰할 수 있는 함수이다.

 

타 DBMS

ORACLE : SEQUENCE.CURRVAL, SEQUENCE.NEXTVAL

MYSQL : LAST_INSERT_ID()

Posted by 당양부부34

블로그 이미지
주요 토렌트를 블로깅하고 있습니다. 토렌트 순위 등은 다른 사이트를 찾아보세요. 주요 웹툰 순위도 게재했어요 경제를 좋아하는 일산의 행복한 프로그래머입니다.
당양부부34
Yesterday
Today
Total

달력

 « |  » 2024.3
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함