


SQL Server의 `SCOPE_IDENTITY()`, `IDENTITY()`, `@@IDENTITY` 및 `IDENT_CURRENT()`의 차이점은 무엇입니까?
SQL Server의 SCOPE_IDENTITY()
, IDENTITY()
, @@IDENTITY
, IDENT_CURRENT()
함수에 대한 심층적인 이해
네 가지 함수 SCOPE_IDENTITY()
, IDENTITY()
, @@IDENTITY
및 IDENT_CURRENT()
는 모두 SQL Server에서 자동 증가 열 값을 검색하는 데 사용되지만 용도가 다릅니다. 차이점을 자세히 살펴보겠습니다.
SCOPE_IDENTITY()
SCOPE_IDENTITY()
현재 범위(현재 문 또는 배치일 수 있음)에서 마지막으로 삽입된 자동 증가 열 값을 검색합니다. 동일한 세션 내 다른 범위에서 생성된 자동 증가 열 값은 고려하지 않습니다.
IDENTITY()
이름과 달리 IDENTITY()
은 자동 증가하는 열 값을 검색하는 데 사용되지 않습니다. 다른 테이블의 데이터에서 새 테이블을 파생할 때 자동 증가 열을 생성하기 위해 SELECT...INTO
문에서 사용됩니다.
@@IDENTITY
@@IDENTITY
범위에 관계없이 현재 세션에서 마지막으로 삽입된 자동 증가 열 값을 검색합니다. 이는 동일한 세션 중에 현재 범위와 다른 범위에서 생성된 자동 증가 열 값을 포함한다는 의미입니다.
IDENT_CURRENT()
IDENT_CURRENT()
은 전체 세션에서도 특정 테이블이나 뷰에 마지막으로 삽입된 자동 증가 열 값을 검색하도록 설계된 덜 사용되는 함수입니다.
각 기능은 언제 사용하나요?
일반적으로 SCOPE_IDENTITY()
은 현재 범위 내에서 격리를 제공하므로 선호됩니다. 동일한 범위의 상위 문이나 저장 프로시저에서 생성된 자동 증가 열 값을 참조해야 하는 경우 SCOPE_IDENTITY()
가 정확성을 보장합니다.
@@IDENTITY
세션 내 다른 범위에서 생성된 자동 증가 열 값에 액세스할 때 유용합니다. 예를 들어 동일한 세션에서 여러 작업이 발생할 때 트리거 또는 일괄 작업에서 사용할 수 있습니다.
IDENT_CURRENT()
은 다양한 데이터 소스의 데이터를 연결할 때와 같이 여러 세션에 걸쳐 특정 테이블의 자동 증가 열 값에 액세스해야 하는 시나리오에서 주로 사용됩니다.
예:
다음 코드 조각을 고려하세요.
-- 向'Customers'表插入一条记录 INSERT INTO Customers (Name) VALUES ('John Doe'); -- 检索当前语句中生成的自增列值 SELECT SCOPE_IDENTITY(); -- 触发器触发并插入另一条记录 CREATE TRIGGER InsertAudit ON Customers AFTER INSERT AS INSERT INTO AuditLog (CustomerId, Action) VALUES (@@IDENTITY, 'INSERT'); -- 检索触发器生成的自增列值 SELECT @@IDENTITY;
이 예에서 SCOPE_IDENTITY()
는 "Customers" 테이블에 삽입된 레코드의 자동 증가 열 값을 반환하고, @@IDENTITY
은 감사 로그 항목 이후 트리거에 의해 생성된 자동 증가 열 값을 반환합니다. 삽입됩니다. 이는 @@IDENTITY
을 사용하여 범위가 다르면 결과가 어떻게 달라질 수 있는지 보여줍니다.
위 내용은 SQL Server의 `SCOPE_IDENTITY()`, `IDENTITY()`, `@@IDENTITY` 및 `IDENT_CURRENT()`의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Alter Table 문을 사용하여 MySQL에서 테이블을 어떻게 변경합니까?

MySQL의 문제를 해결하는 방법 공유 라이브러리를 열 수 없습니다.

Linux에서 MySQL을 실행합니다 (Phpmyadmin이있는 Podman 컨테이너가 포함되지 않음)

인기있는 MySQL GUI 도구는 무엇입니까 (예 : MySQL Workbench, Phpmyadmin)?
