DB
마지막 insert 한 id 꺼내오기
ezmind
2012. 10. 30. 16:46
@identity SCOPE_IDENTITY() IDENT_CURRENT()
모두 마지막으로 insert된 테이블의 identity 컬럼값을 구하는 것이지만 조금 다른점이 있다.
@identity
해당 구역 뿐만이 아니라 함수 호출등으로 인해 다른 테이블에 insert된 identity 값을 갖고 오게 되기 때문에 해당
테이블에 트리거가 걸려있고 그 트리거에서 또 다른 테이블에 insert하는 경우에 문제가 발생할 수 있다
SCOPE_IDENTITY()
현재 구역의 마지막으로 insert된 테이블의 identity를 갖고 오기 때문에 대부분의 경우
SCOPE_IDENTITY() 를 쓰기를 추천한다.
IDENT_CURRENT()
()안에 지정된 테이블의 마지막 identity를 갖고 오지만 섹션에 대한 구분이 없다 즉 다른 섹션에서 또다시
insert된다면 그 값은 기대값과 다를 수 있다