SqlBulkCopyクラスを使用してSQLバルクコピーを実行しています。ソーステーブルとまったく同じになるように宛先テーブルを作成しました。それらは両方とも同じテーブル名、列名、データ型、さらには同じ照合を持っています。精度を確保するためにSQLマッピングも行いました。
私のコードは次のとおりです。
SqlConnection SourceConnection = new SqlConnection(SourceConnectionString);
SqlConnection DestinationConnection = new SqlConnection(DestinationConnectionString);
DestinationConnection.Open();
SourceConnection.Open();
SqlCommand commandSourceData = new SqlCommand("SELECT * FROM Requisitions;", SourceConnection);
SqlDataReader reader = commandSourceData.ExecuteReader();
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(DestinationConnection))
{
bulkCopy.DestinationTableName = "Requisitions";
bulkCopy.ColumnMappings.Add("RequisitionId", "RequisitionId");
bulkCopy.ColumnMappings.Add("CreatedBy", "CreatedBy");
bulkCopy.ColumnMappings.Add("DateCreated", "DateCreated");
bulkCopy.ColumnMappings.Add("AircraftTailNum", "AircraftTailNum");
bulkCopy.ColumnMappings.Add("JobNumber", "JobNumber");
bulkCopy.ColumnMappings.Add("ShopCode", "ShopCode");
bulkCopy.ColumnMappings.Add("RequestedByName", "RequestedByName");
bulkCopy.ColumnMappings.Add("RequestedById", "RequestedById");
bulkCopy.ColumnMappings.Add("Status", "Status");
bulkCopy.ColumnMappings.Add("IsCancelled", "IsCancelled");
bulkCopy.ColumnMappings.Add("IsProcessed", "IsProcessed");
try
{
// Write from the source to the destination.
bulkCopy.WriteToServer(reader);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
reader.Close();
}
}
ただし、コードを実行するたびに、次のエラーが発生しました。
ソース列「CreatedBy」のロケールID「1025」と宛先列「CreatedBy」のロケールID「1033」が一致しません。
私はインターネットでたくさん検索しましたが、解決策はありませんでした。誰かが私を助けてくれたらとてもありがたいです。