2013. 6. 19. 16:34 IT/MSSQL
MSSQL @@IDENTITY , SCOPE_IDENTITY, IDENT_CURRENT 차이
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()
'IT > MSSQL' 카테고리의 다른 글
MSSQL XML 결과 (0) | 2013.07.26 |
---|---|
MSSQL 응답 속도 측정 (0) | 2013.07.11 |
MSSQL Management Studio 에서 변경 내용을 저장할 수 없습니다. 변경 내용을 적용하려면 다음 테이블을 삭제하고 다시 만들어야 합니다. 다시 만들 수 없는 테이블을 변경했거나 [테이블을 다시 만.. (0) | 2013.06.18 |
임의의 컬럼( column ) 명이 있는 전체 테이블 ( table ) 찾기. (0) | 2013.05.28 |
MSSQL DB 이관 (0) | 2013.04.24 |