sqlbulkcopy会替换表模式吗?

时间:2009-09-30 15:30:50

标签: c# sqlbulkcopy

我使用sqlbulkcopy从C#代码插入批量数据。在temp_upload表中有15000条记录。现在,WriteToServer()方法中的数据表只有一列和37行。

运行后,我发现该表只有37条记录。最初它有152列但在此之后只剩下32列。

这可能是什么原因?

的C#代码
public static void BulkInsert(SqlConnection connection,DataTable DtRecord,string   TableName)
    {

        if (DtRecord == null) throw new ArgumentNullException("dataTable");
        // Create & open a SqlConnection, and dispose of it after we are done

            connection.Open();
            SqlBulkCopy bulkCopy = new SqlBulkCopy(connection);
            bulkCopy.DestinationTableName = TableName;
            for (int recordLoop = 0; recordLoop < DtRecord.Columns.Count; recordLoop++)
            {
                bulkCopy.ColumnMappings.Add(DtRecord.Columns[recordLoop].ColumnName, DtRecord.Columns[recordLoop].ColumnName);
            }

            bulkCopy.WriteToServer(DtRecord);
            bulkCopy.Close();
            connection.Close();

    }

1 个答案:

答案 0 :(得分:0)

此MSDN页面上给出的示例代码具有在执行复制操作之前创建具有相应字段的表的脚本,因此我怀疑SqlBulkCopy是否更改了架构。此外,SQLBulkCopy利用列映射,这与更改目标表的模式不一致,因为这样做不需要映射。