gpt4 book ai didi

asp.net - 复制 SQL 数据的最快方法

转载 作者:行者123 更新时间:2023-12-01 23:26:10 24 4
gpt4 key购买 nike

我可以使用一些建议/想法。我编写了一个控制台应用程序,该应用程序将 MS Access 中的表(我知道,但我继承了它)中的所有数据查询到 SQL 表。它每天早上作为计划任务运行。两个表之间的字段不相同。目前我从 MS Access 表中选择所有数据,遍历数据集并将每一行插入到 SQL 表中。我还在这个过程中写了一个快速日志文件。它有效,但速度不快。如果您有任何改进流程的想法,我将不胜感激。谢谢!

最佳答案

SqlBulkCopy Class

它比单独的 insert 语句快方式

您必须为主键递增您自己的标识字段值。为此,首先获取您离开的最后一个标识字段值:

选择前 1 个 id_customer
来自客户
按 id_customer desc 排序

然后在遍历 DataSet 时增加一个 int 变量。

或者您可以使用 GUID for primary key column相反。

使用 SqlBulkCopy 的示例代码:

public static void BulkLoadDataTable(DataTable table, string destinationTable)
{
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(_connectionString))
{
bulkCopy.BulkCopyTimeout = 1200;
bulkCopy.DestinationTableName = destinationTable;
bulkCopy.WriteToServer(table);
}
}

强类型数据表:

using System;
using System.Data;

public class CustomersDataTable : DataTable
{
public CustomersDataTable() : base()
{
base.TableName = "Customers";
Columns.Add(new DataColumn("id_customer", typeof(int)));
Columns.Add(new DataColumn("first_name", typeof(string)));
Columns.Add(new DataColumn("last_name", typeof(string)));
Columns.Add(new DataColumn("active", typeof(bool)));
}
}

关于asp.net - 复制 SQL 数据的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3159720/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com