대량 삽입 후에 서버 생성 엔티티 ID를 업데이트하는 가장 좋은 방법은 무엇입니까?

entity identity-column orm sqlbulkcopy sql-server

문제

대부분 연결이 끊어진 객체 그래프의 노드가 백만 개 미만으로 대량으로 가져와야합니다.

키는 모두 서버에서 생성됩니다. 여러 수준의 관계가 있으므로 각 일괄 처리가 삽입 된 후 다음 일괄 처리에서 외부 키 값으로 사용하려면 올바른 ID 키를 검색해야합니다.

가장 간단한 방법은 무엇입니까? BULK INSERT 의 출력이 있습니까?

또는 테이블의 현재 증분 ID 값을 조정하여 삽입 할 행 수를 확보하고이 수에서 클라이언트 측에 ID를 할당하고 ID 삽입으로 대량 복사 할 수 있습니까? 예를 들어 다음 증분 ID가 120,001이고 삽입 할 행이 600,000 개있는 경우 다음 ID를 720,001로 설정하고 삽입 전에 120,001에서 720,000까지의 숫자를 ID로 수동으로 사용 하시겠습니까?

declare @lastID int, @newLastID int;

begin tran
    set @lastID = ident_current('dbo.Strains');
    set @newLastID = @lastID + 1000;

    dbcc checkident('dbo.Strains', reseed, @newLastID);
commit

select @lastID + 1;

아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.