SQL에서 가장 최근에 추가된 행의 ID에 액세스
데이터베이스 테이블에 새 데이터를 삽입한 후 자동으로 생성된 새 행의 ID를 검색해야 하는 경우가 많습니다. 이 문서에서는 임시 테이블이 필요 없이 이 ID를 가져오는 여러 가지 SQL 방법을 보여줍니다.
SCOPE_IDENTITY()
INT
또는 BIGINT
열이 ID 열로 설정된 테이블의 경우 SCOPE_IDENTITY()
는 INSERT
문 다음의 ID를 효율적으로 검색합니다. 방법은 다음과 같습니다.
<code class="language-sql">INSERT INTO dbo.YourTable(columns....) VALUES(..........) SELECT SCOPE_IDENTITY()</code>
현재 범위 내에서 가장 최근에 삽입된 ID 값을 반환합니다(중첩 트랜잭션의 영향을 받을 수 있음).
@@IDENTITY
@@IDENTITY
은 마지막으로 할당된 ID 값을 보유하는 전역 변수입니다. 다음과 같이 사용하세요:
<code class="language-sql">INSERT INTO dbo.YourTable(columns....) VALUES(..........) SELECT @@IDENTITY</code>
그러나 @@IDENTITY
은 잠재적으로 중첩된 트랜잭션 내의 이전 삽입을 포함하여 모든 범위의 마지막 ID 값을 반영합니다. 동일한 세션에서 여러 삽입이 발생한 경우 잘못된 결과가 나타날 수 있습니다.
IDENT_CURRENT()
IDENT_CURRENT()
에서는 또 다른 옵션을 제공합니다. 범위나 트랜잭션에 관계없이 특정 테이블의 ID 값을 검색합니다.
<code class="language-sql">INSERT INTO dbo.YourTable(columns....) VALUES(..........) SELECT IDENT_CURRENT('dbo.YourTable')</code>
IDENT_CURRENT()
중첩된 트랜잭션 내에서 여러 삽입이 있어도 ID가 지정된 테이블에 있음을 보장합니다.
요약
데이터베이스 개발자는 마지막으로 삽입된 행 ID를 검색하는 다양한 방법을 이해해야 합니다. 테이블 구조와 작업 컨텍스트를 기반으로 올바른 방법을 선택하면 정확한 ID 검색이 보장되고 데이터 무결성이 유지됩니다.
위 내용은 SQL에서 마지막으로 삽입된 행 ID를 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!