0

SqlBulkCopy および DataTable オブジェクトを介してテーブルに行を書き込もうとすると、このエラーが発生します。

先に進む前に、以下の Microsoft KB 記事を認識していることをお伝えします。このエラーに関する投稿はすべて、その記事を参照しています。ただし、テーブルまたはスキーマ名にドットはありません。テーブルはユーザー アカウントの既定のスキーマに存在するため、テーブル名だけで十分です。

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();
}

原因がドット表記以外の場合、他の誰かがこの問題に遭遇しましたか? 権限の問題だと思いますが、完全には確信が持てません。

ありがとうございました。

4

1 に答える 1