插入具有单行的数据表时,SqlBulkCopy 挂起而没有任何异常或超时
SqlBulkCopy hangs without any exception or timeout when inserting a datatable with even a single row
有一个问题,基本上我有一个非常大的数据表(50,000 行),我正在使用 SqlBulkCopy 通过我写的这个函数插入它:
public static void DoSqlBulkCopy(string connectionString, string destinationTableName, DataTable dataTable, int batchSize = 2000)
{
using (var bulk = new SqlBulkCopy(connectionString, SqlBulkCopyOptions.CheckConstraints))
{
bulk.BatchSize = batchSize;
bulk.DestinationTableName = destinationTableName;
for (int i = 0; i < dataTable.Columns.Count; i++)
{
bulk.ColumnMappings.Add(dataTable.Columns[i].ColumnName, dataTable.Columns[i].ColumnName);
}
bulk.WriteToServer(dataTable);
}
}
此代码适用于其他内容,但在此数据集上它只是挂在 WriteToServer 上。
我挠了挠下巴,启动了 SQL 分析器,但没有 activity。
有什么建议吗?也不超时,我放了一夜。
已修复。 table 名称拼写错误,插入到 CuteCats 而不是 CuteCat。它挂起,没有错误消息。该死的东西!
有一个问题,基本上我有一个非常大的数据表(50,000 行),我正在使用 SqlBulkCopy 通过我写的这个函数插入它:
public static void DoSqlBulkCopy(string connectionString, string destinationTableName, DataTable dataTable, int batchSize = 2000)
{
using (var bulk = new SqlBulkCopy(connectionString, SqlBulkCopyOptions.CheckConstraints))
{
bulk.BatchSize = batchSize;
bulk.DestinationTableName = destinationTableName;
for (int i = 0; i < dataTable.Columns.Count; i++)
{
bulk.ColumnMappings.Add(dataTable.Columns[i].ColumnName, dataTable.Columns[i].ColumnName);
}
bulk.WriteToServer(dataTable);
}
}
此代码适用于其他内容,但在此数据集上它只是挂在 WriteToServer 上。
我挠了挠下巴,启动了 SQL 分析器,但没有 activity。
有什么建议吗?也不超时,我放了一夜。
已修复。 table 名称拼写错误,插入到 CuteCats 而不是 CuteCat。它挂起,没有错误消息。该死的东西!