>데이터 베이스 >MySQL 튜토리얼 >SQL Server에서 새로 생성된 ID 값을 검색하는 방법은 무엇입니까?

SQL Server에서 새로 생성된 ID 값을 검색하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2025-01-23 09:03:11706검색

How to Retrieve Newly Generated Identity Values in SQL Server?

SQL Server ID 값 검색 방법: 종합 가이드

ID 열이 포함된 SQL Server 테이블로 작업할 때 삽입 작업 후 새로 생성된 ID 값을 검색하는 것이 중요합니다. 이 가이드에서는 @@IDENTITY, IDENT_CURRENT, SCOPE_IDENTITY()OUTPUT

등 이 목적에 사용할 수 있는 다양한 기능과 기술을 살펴봅니다.

옵션 이해

각 방법은 서로 다른 수준의 범위와 신뢰성을 제공합니다.

  • @@IDENTITY: 이 함수는 특정 테이블이나 문에 관계없이 현재 세션 내에서 생성된 마지막 ID 값을 반환합니다. 사용이 간편하지만 범위가 넓어 동일한 세션 내에서 여러 삽입이 발생할 경우 오류가 발생하기 쉽습니다. 주의해서 사용하세요.

  • IDENT_CURRENT('tableName'): 이 함수는 특정 테이블(tableName)을 구체적으로 대상으로 하며 모든 세션과 범위에서 해당 테이블에 대해 생성된 마지막 ID 값을 검색합니다. @@IDENTITY.

    보다 덜 자주 사용되지만 더 높은 수준의 구체성을 제공합니다.
  • SCOPE_IDENTITY(): 일반적으로 선호되는 방법입니다. 현재 세션 및 현재 범위(일반적으로 현재 일괄 처리 또는 저장 프로시저) 내에서 생성된 마지막 ID 값을 반환합니다. 이는 @@IDENTITY.

    에 비해 더 나은 격리성과 정확성을 제공합니다.
  • OUTPUT 절: OUTPUT 문과 함께 사용되는 INSERT 절은 삽입된 모든 행의 ID 값을 캡처하는 강력하고 안정적인 방법을 제공합니다. 삽입된 행은 임시 테이블이나 테이블 변수에 기록되므로 ID 값을 직접 쿼리할 수 있습니다. 이는 병렬 실행 계획을 처리할 때 특히 유용합니다. 그러나 OUTPUT 절은 트리거 전에 실행되므로 트리거에 의해 생성된 ID 값이 반영되지 않습니다.

올바른 방법 선택

대부분의 시나리오에서 SCOPE_IDENTITY()는 단순성과 신뢰성의 최상의 균형을 제공합니다. @@IDENTITY 더 넓은 범위가 명시적으로 요구되지 않는 한 피해야 합니다. IDENT_CURRENT('tableName')은 필요할 때 보다 구체적인 접근 방식을 제공하며, OUTPUT 절은 특히 복잡한 시나리오나 병렬 처리 작업 시 견고성 때문에 유용합니다. 선택은 궁극적으로 애플리케이션의 특정 요구 사항과 동시 작업 가능성에 따라 달라집니다.

위 내용은 SQL Server에서 새로 생성된 ID 값을 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.