【发布时间】:2018-10-04 12:29:06
【问题描述】:
我有两个数据库表,它们具有相同的列,但它们的数据类型不同(例如:“检查”列在表 1 中是整数类型,但在表 2 中是 varchar)。我正在尝试使用 BulkCopy 将数据从一个表复制到另一个表。我有这样的代码:
using (SqlBulkCopy sbc = new SqlBulkCopy(connectionString, SqlBulkCopyOptions.KeepIdentity))
{
cmdSQLT = new SqlCommand("SELECT " + ColumnsNames + " FROM [transfer].[" + SelectedScheme + ".OldTable]", conn);
cmdSQLT.CommandTimeout = 1200;
reader = cmdSQLT.ExecuteReader();
sbc.ColumnMappings.Add("CHECK", "CHECK");
sbc.DestinationTableName = "[" + SelectedScheme + "_Newtable]";
sbc.BulkCopyTimeout = 1200;
sbc.WriteToServer(reader);
}
我收到一个错误提示
源列“CHECK”的区域设置 ID“0”和区域设置 ID 目标列“CHECK”的“1033”不匹配。
这是由于表之间的数据类型差异而发生的。前面代码中如何进行数据类型转换?
非常感谢您的帮助!
【问题讨论】:
标签: c# sql asp.net sql-server