@@IDENTITY 와 SCOPEIDENTITY()
만약 에 문장 과 업무 가 실패 하면 표 의 현재 표 지 를 변경 하여 표지 열 에 있 는 값 이 일관성 이 없 는 현상 을 나타 낸다.표 에 값 을 삽입 하려 는 사 무 를 제출 하지 않 아 도 표지 값 을 다시 굴 릴 수 없습니다.예 를 들 어 IGNOREDUP_KEY 충돌 로 인해 INSERT 문구 가 실 패 했 습 니 다.표 의 현재 표지 값 은 여전히 증가 합 니 다.
@@IDENTITY、SCOPE_IDENTITY 와 IDENTCURRENT 는 표 에 삽 입 된 IDENTITY 열의 마지막 값 을 되 돌려 주기 때문에 비슷 한 함수 입 니 다.
@@IDENTITY 와 SCOPEIDENTITY 는 현재 세 션 의 모든 표 에서 생 성 된 마지막 표지 값 을 되 돌려 줍 니 다.하지만,SCOPEIDENTITY 는 현재 역할 영역 에서 만 값 을 되 돌려 줍 니 다.@@IDENTITY 는 특정한 역할 영역 에 국한 되 지 않 습 니 다.
IDENT_CURRENT 는 역할 영역 과 세 션 의 제한 을 받 지 않 고 지 정 된 표 에 제 한 됩 니 다.IDENT_CURRENT 는 모든 세 션 과 모든 역할 영역 에서 특정한 표 에 생 성 된 표지 값 을 되 돌려 줍 니 다.
@@IDENTITY 함수 의 역할 영역 은 이 함 수 를 실행 하 는 로 컬 서버 의 현재 세 션 입 니 다.이 함 수 는 원 격 또는 링크 서버 에 적용 할 수 없습니다.다른 서버 의 표지 값 을 얻 으 려 면 원 격 서버 나 링크 서버 에서 저장 과정 을 실행 하고(원 격 또는 링크 서버 환경 에서 실 행 된)이 저장 과정 에서 표지 값 을 수집 하여 로 컬 서버 에서 호출 된 연결 로 되 돌려 주 십시오.
다음 예제 에 서 는 표지 열(LocationID)을 포함 하 는 표 에 한 줄 을 삽입 하고@@IDENTITY 를 사용 하여 새 줄 에 사용 할 표지 값 을 표시 합 니 다. 변경 작업 이 있 는 범위 제약 을 무시 했다.예 를 들 어 저 는 표 A 와 표 B 두 개의 시 계 를 가지 고 있 습 니 다.지금 은 표 A 에 Insert 트리거 를 정 의 했 습 니 다.표 A 에 데 이 터 를 삽입 할 때 표 B 에 도 데 이 터 를 자동 으로 삽입 합 니 다.이때 두 개의 원자 조작 이 있 습 니 다.A 에 데 이 터 를 삽입 한 다음 에 B 에 데 이 터 를 삽입 합 니 다. 지금 생각해 보 겠 습 니 다.위의 표 A 와 표 B 에 IDENTITY 자체 증가 도 메 인 이 있다 고 가정 하면 표 A 에 데 이 터 를 삽입 한 후에 SELECT@@IDENTITY 출력 을 사 용 했 을 때 출력 한 것 은 도대체 A 입 니까?B 의 자체 증가 도 메 인 값 입 니까? 답 은 분명 하 다.누가 마지막 에 삽입 하면 출력 하 는 지,그러면 B 다.그래서 저 는 A 의 자 증 도 메 인 값 을 얻 으 려 고 했 는데 B 의 자 증 도 메 인 값 을 얻 었 고 BUG 한 마리 가 탄생 했 습 니 다.잘못 하면 전체 시스템 데이터 의 혼란 에 영향 을 줄 수 있 습 니 다. 따라서 이 경우@@IDENTITY 대신 SCOPE 를 사용 하 는 것 을 권장 합 니 다.IDENTITY()함수 가 바 뀌 었 습 니 다.SCOPE_IDENTITY()도 마지막 자 증 역 의 값 을 얻 었 지만,@IDENTITY 가 아 닌 한 작업 범위 내 에서 만 자 증 역 의 값 을 얻 었 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Javascript의 범위오늘은 자바스크립트에서 스코프에 대해 알아보려고 합니다. Javascript에서 범위는 자바스크립트에 대한 변수의 액세스 가능성을 결정하는 코드의 현재 컨텍스트를 나타냅니다. 즉, 변수는 변수가 생성된 환경에서만 액...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.