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

SQL Server에서 삽입된 행의 ID 값을 검색하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2025-01-23 09:12:11757검색

How to Retrieve the Identity Value of an Inserted Row in SQL Server?

SQL Server에서 새로 추가된 행의 ID 가져오기

자동 증가 열이 있는 테이블에 행을 추가하려면 새로 생성된 ID를 검색해야 하는 경우가 많습니다. SQL Server는 이를 달성하기 위한 여러 가지 방법을 제공하며 각 방법에는 고유한 장점과 단점이 있습니다. 상황에 가장 적합한 방법을 선택하려면 이러한 차이점을 이해하는 것이 중요합니다.

다양한 접근 방식과 뉘앙스

@@IDENTITY 함수

@@IDENTITY 함수는 현재 데이터베이스 세션 내의 모든 테이블에서 가장 최근에 생성된 ID 값을 반환합니다. 이는 편리하지만 동일한 세션에서 여러 삽입이 발생하는 경우 신뢰할 수 없어 잠재적으로 잘못된 결과가 발생할 수 있습니다.

SCOPE_IDENTITY() 함수

SCOPE_IDENTITY()이 더 정확합니다. 현재 세션 및 범위(예: 저장 프로시저 또는 일괄 처리 내) 내에서 생성된 마지막 ID 값을 반환합니다. 이는 일반적으로 가장 안전하고 가장 권장되는 옵션입니다.

IDENT_CURRENT('tableName') 함수

IDENT_CURRENT('tableName')은 특정 테이블을 직접 타겟팅합니다. 세션이나 범위에 관계없이 해당 테이블에 대해 생성된 마지막 ID 값을 검색합니다. 이는 최근 삽입이 없더라도 테이블에 할당된 마지막 ID를 확인하는 데 유용합니다.

INSERT와 함께 OUTPUT 절 사용

INSERT 문은 OUTPUT 절과 결합될 때 강력하고 직접적인 방법을 제공합니다. ID 값을 포함하여 명령문에 의해 삽입된 모든 행을 캡처할 수 있습니다. 이 접근 방식은 잠재적인 모호성을 방지하기 위해 문 자체에 적용됩니다. 여기에는 일반적으로 임시 테이블이나 테이블 변수에 삽입하는 작업이 포함되므로 좀 더 복잡해집니다.

언제 어떤 방법을 사용해야 할까요

  • 대부분의 시나리오에서 SCOPE_IDENTITY()은 새로 생성된 ID 값을 얻는 데 선호되는 방법입니다. 범위별 특성으로 인해 정확성이 보장됩니다.
  • 모든 범위에서 마지막 ID 값이 필요하고 오류 가능성이 있는 경우에만 @@IDENTITY을 사용하세요.
  • IDENT_CURRENT('tableName')은 세션이나 범위에 관계없이 특정 테이블의 마지막 ID 값을 검색하는 데 유용합니다.
  • INSERT ... OUTPUT 접근 방식은 효율성과 범위 제어를 제공하지만 추가 설정이 필요합니다. 복잡성이 추가되는 것에 비해 이점을 고려하십시오.

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

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