是否有办法在特定列上执行批量插入,即文件的列号与表的列号不匹配。
我想导入一个包含以下架构的文件:
Customer_ID,Customer_Name,Customer_Adress
客户'具有以下模式的表:
Customer_ID,Customer_Name,Customer_Adress, Customer_Phone,Customer_email
有可能吗?
由于
答案 0 :(得分:3)
据我所知,你可以使用XML格式文件,也可能使用视图作为目标。
FORMATFILE =' format_file_path'
指定格式文件的完整路径。格式文件描述包含使用bcp创建的存储响应的数据文件 同一个表或视图上的实用程序。如果出现以下情况,则应使用格式文件:
- 数据文件包含的列数多于或少于表格或视图。
- 列的顺序不同。
- 列分隔符各不相同。
答案 1 :(得分:0)
也许SqlBulkCopy可能对你有所帮助,然后你可以这样做:
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(db.ConnectionString))
{
bulkCopy.DestinationTableName = "Customer";
bulkCopy.ColumnMappings.Add("Customer_ID", "Customer_ID");
bulkCopy.ColumnMappings.Add("Customer_Name", "Customer_Name");
DataTable dt = GetDataFromExcel(); // Get your data from the excel file
dt.Columns[0].ColumnName = "Customer_ID";
dt.Columns[1].ColumnName = "Customer_Name";
bulkCopy.WriteToServer(dt);
}