c \ # SqlBulkCopy 를 사용 하여 빅 데이터 삽입 데이터베이스 속 도 를 높 입 니 다.

2854 단어
스스로 조금씩 총 결 해 야 한다.
1. BulkCopy 는 삽입 방식 을 사용 합 니 다. 덮어 쓰 는 방식 이 아 닙 니 다. (원본 데이터 가 움 직 이지 않 고 원본 데이터 뒤에 dataTable 의 내용 을 복사 합 니 다)
2. 추 가 된 필드 에 값 을 부여 하지 않 습 니 다.
3. 데이터베이스 필드 이름과 dataTable 열 이름 이 다 를 수 있 습 니 다. 대응 관 계 는 bulkcopy. ColumnMappings. Add ("author", "author") 를 사용 합 니 다.연관 성
public void SaveTable(DataTable dtTable)
        {
            SqlBulkCopy sbc = new SqlBulkCopy(DbHelperSQL.connectionString, SqlBulkCopyOptions.UseInternalTransaction);
            sbc.BulkCopyTimeout = 5000;
            try
            {                
                sbc.DestinationTableName = "FAST_Temp";
                sbc.WriteToServer(dtTable);
            }
            catch (Exception ex)
            {
                //    
            }
            finally
            {
                //sqlcmd.Clone();
                //srcConnection.Close();
                //desConnection.Close();
            }
        }

 
또한 SqlBulkCopyOptions 매 거 진 을 확장 합 니 다.
 
 
구성원 이름
설명 하 다.
 
AllowEncryptedValueModifications
암호 화 값 수정 허용.
 
CheckConstraints
데 이 터 를 삽입 하 는 동시에 제약 조건 을 검사 합 니 다. 기본 적 인 상황 에서 제약 을 검사 하지 않 습 니 다.
 
Default
모든 옵션 의 기본 값 을 사용 합 니 다.
 
FireTriggers
지정 하면 서버 가 트리거 를 자극 하여 줄 을 데이터베이스 에 삽입 합 니 다.
 
KeepIdentity
원본 표지 값 유지. 표지 값 이 지정 되 지 않 았 을 때 이 값 은 목표 가 할당 합 니 다.
 
KeepNulls
기본 값 설정 대신 대상 표 에 null 값 을 유지 합 니 다. 지정 되 지 않 으 면 기본 값 으로 null 값 을 바 꿉 니 다 (적용 시).
 
TableLock
대량 복제 작업 지속 시간의 대량 업데이트 잠 금 가 져 오기. 지정 되 지 않 으 면 줄 잠 금 을 사용 합 니 다.
 
UseInternalTransaction
지정 하면 일괄 복사 작업 의 모든 부분 이 트 랜 잭 션 에서 발생 합 니 다. 이 옵션 을 표시 하고 구조 함수 에 SqlTransaction 을 제공 합 니 다. 대상 ArgumentException。

좋은 웹페이지 즐겨찾기