2013-12-10 2 views
0

한 번에 여러 레코드를 여러 테이블에 삽입하는 가장 좋은 방법을 알고 싶습니다. 여기 내 상황이 있습니다. 나는 100 개가 넘는 레코드로 된 엑셀 파일을 가지고있다. 이 파일에는 사용자의 모든 세부 정보가 있습니다. 각 테이블 (aspnet_Membership, aspnet_Users, 클라이언트, ClientAddress, ClientPaymentDetails)에 모든 레코드를 삽입해야합니다. Client 테이블에서 aspnet_Membership의 UserId를 사용하고 있습니다. 다른 클라이언트 테이블에는 외부 키 참조가 있습니다. 누구든지 여러 테이블에 여러 레코드를 삽입하는 것이 가장 옳고 빠른 방법은 무엇입니까?한 번에 여러 테이블에 삽입 할 수 있습니까?

답변

0

을 만들 것 수주 가능성이 GUID를 삽입해야합니다, 나는 추천 :

장소 XML로 모든 데이터를 ....이 xml을 "완벽하게"만들려면 저장 프로 시저에서 수행 할 논리가 없다는 의미입니다.

XML을 저장 프로 시저에 보냅니다.

xml을 @variable 테이블로 분할하십시오.

TRANsaction을 시작하십시오. @variable 테이블을 사용하여 CRUD 작업을 수행하십시오. 오류가있는 경우 롤백 (전체). 성공을 약속합니다.

aspnet_Membership은 GUID/UniqueIdentifier를 사용하므로 클라이언트 측에서 모든 관계를 만들 수 있습니다. 삽입 후 @@ IDENTITY 또는 "출력"값을 기다릴 필요가 없습니다.

...

는 여기에 몇 가지 XML 파쇄 기본입니다 :

여기

http://pratchev.blogspot.com/2007/06/shredding-xml-in-sql-server-2005.html

이 같은 방법을 가리키는 수락 한 대답이다.

c# - Best approach for a bulk update/merge on a table with high data volumne, but small change set

0

SP는 여러 SQL 문을 일괄 처리 할 수 ​​있습니다. SP를 쓰고 인서트의 모든 관계와 순서를 돌 봅니다. 나는 그것이 좋은 생각인지 모른다. 그러나 만일 당신이 그것을 할 다른 방법이 없다면이 길은 괜찮을 수있다. 당신은, 당신은 모든 관계 떨어져 돌보는되어 있는지 확인이 시나리오 작업 비트 harder.Cheers

관련 문제