저는 Access에서 SQL Server 2008로 데이터를 가져 오는 응용 프로그램을 만들고 있습니다. 현재 저장 프로 시저를 사용하여 레코드별로 데이터를 가져옵니다. 데이터가 두 개의 관련 테이블에 삽입 되었기 때문에 대량 삽입물 또는 이와 유사한 것은 사용할 수 없습니다 ... 계정 테이블 (이름, 성 등) 및 세 개의 필드 저장 프로 시저에서 SCOPE_IDENTITY로 선택한 자동 증가 AccountID에 의해 Account 테이블에 다시 링크 된 Insurance 테이블에 레코드가 있습니다.스테이징 테이블의 데이터를 여러 관련 테이블에 삽입 하시겠습니까?
응용 프로그램에서 데이터베이스로 왕복하는 횟수가 많아 성능이 좋지 않습니다. 이것과 다른 이유로 나는 스테이징 테이블을 사용하고 거기에서 데이터를 가져올 계획입니다. 이 접근에 대한 내 옵션을 읽고, 스테이징 테이블의 데이터에 동일한 삽입 저장 프로 시저를 실행하는 커서는 의미가 있습니다. 그러나 커서는 악의적 인 육체이고 피해야합니다.
데이터를 한 테이블에 삽입하고 자동 생성 ID를 검색 한 다음 해당 레코드를 사용하여 데이터를 다른 테이블에 삽입 할 수 있습니까? 아니면 커서가 유일한 옵션입니까?
SQL Server 2008에서는 '병합 ... 출력'을 사용할 수 있습니다. 이 질문을보십시오. http://stackoverflow.com/questions/5365629/using-merge-output-to-get-mapping-between-source-id-and-target-id –
BUlk 스테이징 테이블에 삽입하십시오. 그런 다음 다른 사람이 설명하는대로 MERGE 및 OUTPUT을 사용합니다. – HLGEM