> 데이터 베이스 > MySQL 튜토리얼 > 기본 키 ID 값을 검색하기 위해 @@IDENTITY, SCOPE_IDENTITY() 및 OUTPUT 중에서 선택하는 방법은 무엇입니까?

기본 키 ID 값을 검색하기 위해 @@IDENTITY, SCOPE_IDENTITY() 및 OUTPUT 중에서 선택하는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2025-01-03 04:12:38
원래의
438명이 탐색했습니다.

How to Choose Between @@IDENTITY, SCOPE_IDENTITY(), and OUTPUT for Retrieving Primary Key Identity Values?

마지막 ID 검색: @@IDENTITY, SCOPE_IDENTITY(), OUTPUT 등

삽입 후 기본 키 ID 필드 값을 검색할 때 개발자는 다양한 방법을 사용하는 경우가 많습니다. 이 문서에서는 @@IDENTITY, SCOPE_IDENTITY() 및 OUTPUT 메서드의 차이점과 적합성에 대해 자세히 설명합니다.

@@IDENTITY와 SCOPE_IDENTITY()

@@IDENTITY 범위에 관계없이 모든 테이블에 대해 생성된 마지막 IDENTITY 값을 반환합니다. 범위 안전하지 않습니다. 즉, 현재 세션 내의 트리거된 삽입이나 다른 문에서 ID를 반환할 수 있습니다.

SCOPE_IDENTITY()는 비슷하게 동작하지만 반환되는 값을 현재 문으로 제한합니다. 및 연결 범위. 따라서 문 실행 중에 생성된 ID만 검색합니다.

OUTPUT 메서드

INSERT 문의 OUTPUT 절은 테이블에 삽입된 데이터가 포함된 테이블을 반환합니다. 여기에는 생성된 IDENTITY 값이 포함됩니다.

INSERT INTO #Testing (ID, somedate)
OUTPUT INSERTED.*
DEFAULT VALUES;
로그인 후 복사

방법 선택

적절한 방법은 특정 요구 사항에 따라 다릅니다.

  • @@IDENTITY: 현재 테이블 내의 모든 테이블에서 마지막으로 생성된 ID를 검색하는 데 적합합니다. session.
  • SCOPE_IDENTITY(): 현재 문과 범위에서만 ID가 필요할 때 유용합니다.
  • OUTPUT: 검색뿐만 아니라 검색에도 이상적입니다. ID뿐 아니라 기타 삽입된 값도 포함됩니다.

범위 안전성

OUTPUT 메서드는 명시적으로 범위로부터 안전하지 않습니다. 현재 범위에서 생성된 ID를 검색하지만 해당 ID가 다른 테이블에 할당된 경우 해당 ID도 반환할 수 있습니다. 엄격한 범위 안전을 위해 SCOPE_IDENTITY()를 사용하세요.

추가 참고 사항

  • IDENT_CURRENT(table): 특정 테이블에 대해 생성된 가장 최근 ID 값을 반환합니다. 연결이나 범위에 관계없이. 하지만 주로 레거시 코드에서 사용됩니다.

위 내용은 기본 키 ID 값을 검색하기 위해 @@IDENTITY, SCOPE_IDENTITY() 및 OUTPUT 중에서 선택하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿