我需要获取与成员对应的 ID 号列表。它们可以在任何给定时间处理 10 到 10,000 个。我收集数据、解析数据并将其加载到 DataTable 或任何东西(C#)中没有问题,但我想在数据库中执行一些操作。将所有这些数据插入表中的最佳方法是什么?
我很确定我不想为每个语句运行一个并插入 10,000 次。
我需要获取与成员对应的 ID 号列表。它们可以在任何给定时间处理 10 到 10,000 个。我收集数据、解析数据并将其加载到 DataTable 或任何东西(C#)中没有问题,但我想在数据库中执行一些操作。将所有这些数据插入表中的最佳方法是什么?
我很确定我不想为每个语句运行一个并插入 10,000 次。
我之前使用过SqlBulkCopy类进行了几百万次添加。它看起来很方便。
您可能不想执行 10,000 次 INSERT,但您可以将这 10,000 次插入包装到 1 个事务中。
您可以为此目的尝试SSIS
您可以像这样插入 SELECT:
INSERT INTO myTable (a, b, c) SELECT d, e, f FROM anotherTable WHERE ...
希望能帮助到你。
使用 SQL Server 2008,您可以将 C# 数据集(实际的 DataTable 对象)作为表值参数传递。该参数在您的 Transact-SQL 代码中可用作@table
您可以查询和操作的变量。