@identity SCOPE_IDENTITY() IDENT_CURRENT()
모두 마지막으로 insert된 테이블의 identity 컬럼값을 구하는 것이지만 조금 다른점이 있다.

@identity
해당 구역 뿐만이 아니라 함수 호출등으로 인해 다른 테이블에 insert된 identity 값을 갖고 오게 되기 때문에 해당
테이블에 트리거가 걸려있고 그 트리거에서 또 다른 테이블에 insert하는 경우에 문제가 발생할 수 있다

SCOPE_IDENTITY()
현재 구역의 마지막으로 insert된 테이블의 identity를 갖고 오기 때문에 대부분의 경우
SCOPE_IDENTITY() 를 쓰기를 추천한다.

IDENT_CURRENT()
()안에 지정된 테이블의 마지막 identity를 갖고 오지만 섹션에 대한 구분이 없다 즉 다른 섹션에서 또다시
insert된다면 그 값은 기대값과 다를 수 있다

'DB' 카테고리의 다른 글

테이블합치기 - union  (0) 2012.10.30
쿼리로 도스명령어 실행  (0) 2012.10.30
랜덤 select  (0) 2012.10.30
날짜가 몇번째주인지 구하기  (0) 2012.10.30
테이블 삭제 - TRUNCATE TABLE  (0) 2012.10.30
Posted by ezmind
: