System & Develop/SQL2002. 9. 29. 11:07
INSERT, SELECT INTO 또는 대량 복사 문이 완료되면 @@IDENTITY에는 명령문에 의해 생성된 마지막 ID 값이 들어 있습니다. 명령문이 ID 열이 있는 테이블에 영향을 주지 않은 경우에 @@IDENTITY는 Null 값을 반환합니다. 여러 행이 삽입되어 여러 ID 값이 생성되면 @@IDENTITY는 마지막으로 생성된 값을 반환합니다. 명령문이 ID 값을 생성하는 삽입 작업을 수행하는 트리거를 하나 이상 시작하는 경우 명령문 바로 다음에 @@IDENTITY를 호출하면 트리거로 생성된 마지막 ID 값이 반환됩니다. @@IDENTITY 값은 INSERT나 SELECT INTO 문 또는 대량 복사가 실패하거나 트랜잭션이 롤백하면 이전 설정으로 되돌아가지 않습니다.

@@IDENTITY, SCOPE_IDENTITY, IDENT_CURRENT는 테이블의 IDENTITY 열에 삽입된 마지막 값을 반환한다는 점에서 서로 비슷한 함수입니다.

@@IDENTITY와 SCOPE_IDENTITY는 현재 세션의 테이블에서 생성된 마지막 ID 값을 반환합니다. 그러나, SCOPE_IDENTITY는 현재 범위 내에서만 값을 반환합니다. @@IDENTITY는 특정 범위로 제한되지 않습니다.

IDENT_CURRENT는 범위와 세션으로 제한되지 않고, 지정된 테이블로 제한됩니다. IDENT_CURRENT는 임의의 세션과 범위에 있는 특정 테이블에 생성된 ID 값을 반환합니다. 자세한 내용은 IDENT_CURRENT를 참조하십시오.

Posted by basaaja