SqlBulkCopy를 사용하여 데이터 테이블을 삽입하기 전에 데이터 테이블의 데이터를 어떻게 검증 할 수 있습니까?

asp.net c# datatable sqlbulkcopy sql-server

문제

ExcelDataReader를 사용하여 Excelheet에서 Datatable으로 3 천 개의 행을 가져옵니다.

어떻게하면 SqlBulkCopy.Writetoserver ()를 사용하여 데이터베이스에 삽입하기 전에이 행의 유효성을 검사 할 수 있습니까?

질문 :

1. 내 Datatable과 SQL Server 테이블 중 하나의 TableScheme을 비교하는 방법.

2. 삽입 전에 FK 제약 조건과 PK 중복을 검증 할 수 있습니까?

3. 같은 테이블에 FK가있는 SponsorID Column으로 이와 같은 테이블을 가지고 있다면

ID - 이름 - 나이 - 관계 - Column4 - SponsorID

100 - Adam Michale - 32 - 본인 - 1/1/2015 - 100

101 - Anna Mike - 29 - wife - 1/1/2015 - 100

102 - Sarah Adam - 6 - Daughter - 1/1/2015 - 100

어쨌든 SqlBulkCopy를 사용하여 이러한 삽입을 수행 할 것입니다.

미리 감사드립니다.

그리고 만약 내가 있다면이 같은 삽입을위한 다른 접근 방식에 대해 듣기보다 기쁠 것입니다.

수락 된 답변

  1. Excel 파일을 쿼리하고 SQL 언어를 사용하여 비교할 수 있습니다. 아래 예를 참조하십시오.

    SELECT * FROM OPENROWSET ( 'Microsoft.Jet.OLEDB.4.0', 'Excel 8.0; 데이터베이스 = C : \ excel-sql-server.xls', [Sheet1 $])

링크 에서 분산 쿼리에 대한 추가 옵션을 찾으십시오.

  1. SQL 데이터에 이미있는 데이터를 쿼리하고 Excel과 비교하여 PK / 항목 중복을 확인할 수 있습니다.

  2. 엑셀에 ID가있는 OldID 열을 만들 수 있습니다. 그런 다음 OldID 참조를 사용하여 스폰서 ID를 새 ID로 업데이트하십시오.



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