SqlBulkCopy 대상 테이블에 대한 열 데이터 정렬 정보를 가져 오는 데 실패했습니다.

collation sqlbulkcopy

문제

SqlBulkCopy 및 DataTable 개체를 통해 테이블에 행을 쓰려고하면이 오류가 발생합니다.

더 이상 진행하기 전에 아래의 Microsoft 기술 자료 문서를 알고 있다고 이야기하겠습니다. 이 오류와 관련된 모든 게시물은 해당 문서를 참조합니다. 그러나 필자는 테이블이나 스키마 이름에 점을 넣지 않습니다. 테이블은 사용자 계정의 기본 스키마에 있으므로 테이블 이름만으로 충분합니다.

http://support.microsoft.com/kb/944389

다음은 대량 쓰기 작업을 수행하는 코드입니다.

SqlConnection cn = new SqlConnection(cs);
cn.Open();

SqlTransaction tr = cn.BeginTransaction();

try
{
    using (SqlBulkCopy copy = new SqlBulkCopy(cn, SqlBulkCopyOptions.Default, tr))
    {
        copy.DestinationTableName = CircCountTableName;
        copy.ColumnMappings.Add("CirculationRangeID", "CirculationRangeID");
        copy.ColumnMappings.Add("GeographyID", "GeographyID");
        copy.ColumnMappings.Add("CircCountModelID", "CircCountModelID");
        copy.ColumnMappings.Add("Monday", "Monday");
        copy.ColumnMappings.Add("Tuesday", "Tuesday");
        copy.ColumnMappings.Add("Wednesday", "Wednesday");
        copy.ColumnMappings.Add("Thursday", "Thursday");
        copy.ColumnMappings.Add("Friday", "Friday");
        copy.ColumnMappings.Add("Saturday", "Saturday");
        copy.ColumnMappings.Add("Sunday", "Sunday");
        copy.ColumnMappings.Add("DataSource", "DataSource");
        copy.ColumnMappings.Add("DataSourceID", "DataSourceID");
        copy.ColumnMappings.Add("CreateDate", "CreateDate");
        copy.ColumnMappings.Add("LastUpdateDate", "LastUpdateDate");
        copy.ColumnMappings.Add("LastUpdateUser", "LastUpdateUser");

        copy.WriteToServer(circCounts);

        tr.Commit();
    }
}
catch (Exception ex)
{
    tr.Rollback();
}
finally
{
    cn.Close();
}

원인이 도트 표기법이 아닌 다른 문제 일 때이 문제가 발생 했습니까? 나는 이것이 허가 문제라고 생각하지만, 나는 완전히 확신하지 못한다.

고맙습니다.

인기 답변

이것이 왜 달라질 지 모르겠지만 데이터베이스에 연결하는 데 사용 된 계정에 데이터베이스 정의 / 권한 아래의보기 정의 권한을 부여 할 권한을 부여하면 오류가 사라집니다.



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