问题标签 [sqlbulkcopy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
19649 浏览

c# - SqlBulkCopy 错误处理/错误继续

我正在尝试将大量数据插入 SQL 服务器。我的目标表有一个名为“Hash”的唯一索引。

我想用 SqlBulkCopy 替换我的 SqlDataAdapter 实现。在 SqlDataAapter 中有一个名为“ContinueUpdateOnError”的属性,当设置为 true 时,adapter.Update(table) 将插入所有可能的行并使用 RowError 属性标记错误行。

问题是如何使用 SqlBulkCopy 尽快插入数据,同时跟踪哪些行被插入,哪些行没有被插入(由于唯一索引)?

以下是附加信息:

  1. 该过程是迭代的,通常按计划重复。

  2. 源表和目标表可能很大,有时有数百万行。

  3. 尽管可以先检查散列值,但每行需要两个事务(首先从目标表中选择散列,然后执行插入)。我认为在 adapter.update(table) 的情况下,检查 RowError 比检查每行的哈希命中要快。

0 投票
3 回答
34987 浏览

c# - 使用 SqlBulkCopy 插入数据时出错

我正在尝试使用将数据批量插入到 SQL 2008 中SqlBulkCopy

这是我的桌子:

这是我的代码:

所以我收到错误:

来自数据源的 type 的给定值SqlDateTime无法转换为date指定目标列的类型。

为什么??我该如何解决?请帮帮我!

0 投票
1 回答
333 浏览

.net - 从 SQL Server 加载具有表定义和关系(但不是数据)的数据集

我不是 System.Data 和 SQL Server 的专家,但需要生成一个大型 DataSet,然后使用 System.Data.SqlClient.SqlBulkCopy 来存储结果。

DataSet 将包含大约 10 个相关的表。当 SqlBulkCopy 将 DataSet 传输到 SQL Server 时,我的理解是来自各种 DataTables 的行将与现有的 SQL 表集成,维护关系和约束。

除了手动构建 DataTables 并手动设置关系和约束,也不是创建 XML 模式定义,有没有一种简单的方法可以将多个表定义、约束和外键定义从 SQL 直接加载到 DataSet 中?

如果没有,你会推荐什么方法?

0 投票
8 回答
21572 浏览

sql-server - 完成时的 SQLBulkCopy 行计数

我正在使用 SQLBulkCopy 移动大量数据。我实现了通知事件以在每次处理了一定数量的行时通知我,但是当作业完成时 OnSqlRowsCopied 事件不会触发。当 SQLBulkCopy writetoserver 完成时,如何获取复制的总行数?

0 投票
5 回答
16784 浏览

c# - SqlBulkCopy 和 DataTables 在标识列上具有父/子关系

我们需要根据父表中的 Identity 主键更新几个具有父/子关系的表,该主键被一个或多个子表称为外键。

  • 由于数据量很大,我们希望在内存中构建这些表,然后使用 C# 中的 SqlBulkCopy 从 DataSet 或单个 DataTables 更新数据库。
  • 我们还希望从多个线程、进程和可能的客户端并行执行此操作。

我们在 F# 中的原型显示了很多希望,性能提高了 34 倍,但是此代码强制在父表中使用已知的 Identity 值。如果不强制,当 SqlBulkCopy 插入行时,Identity 列会在数据库中正确生成,但 Identity 值不会在内存中 DataTable 中更新。此外,即使它们是,也不清楚 DataSet 是否会正确修复父/子关系,以便随后可以使用正确的外键值写入子表。

谁能解释如何让 SqlBulkCopy 更新标识值,以及如何配置 DataSet 以保留和更新父/子关系,如果在单个 DataTables 上调用 DataAdapter 来 FillSchema 时没有自动完成。

我不想要的答案:

  • 读取数据库以找到当前最高的 Identity 值,然后在创建每个父行时手动递增它。不适用于多个进程/客户端,据我了解,失败的事务可能会导致某些身份值被跳过,因此这种方法可能会搞砸关系。
  • 一次写一个父行并要求返回标识值。这至少抵消了使用 SqlBulkCopy 所带来的一些好处(是的,子行比父行多得多,但仍然有很多父行)。

类似于以下未回答的问题:

0 投票
1 回答
3028 浏览

.net - 在 SqlBulkCopy 之前截断

我想在执行 SqlBulkCopy 之前截断表。SqlBulkCopy 会在复制数据之前自动截断表吗?

0 投票
2 回答
6709 浏览

sqlite - Import data from SQLite to SQL Server with SqlBulkCopy class

I'm trying to transfer the data from SQLite to SQL Server. The schema of target and destination table are just the same:

SQL Server:

and SQLite:

I wrote the code as below (with System.Data.SQLite):

Data has been loaded by reader (I've checked). But an InvalidOperationException throws on WriteToServer method: The given ColumnMapping does not match up with any column in the source or destination.

Any ideas or suggestion for me?

0 投票
1 回答
225 浏览

datatable - SqlBulkCopy WriteToServer 是否需要 DataTable 中的所有数据库列?

我正在从 CSV 导入一些数据,但它没有我的表的所有字段。我正在制作一个仅包含 CSV 列的 DataTable,但在从 String 转换为 Boolean 时遇到错误。我添加的所有字段都不是布尔值,所以我假设我单独留下的字段有问题。

我是否需要在我的 DataTable 中进行 1-1 映射?

0 投票
2 回答
3469 浏览

sql-server - 使用 BCP 从 SQL Server 表写入文件

我刚刚意识到我的上限是在 SQL Server 中工作的,哈。

无论如何,我试图从

serverName.databaseName.databaseInstanceName.TableName

C:\文件名.xml

使用bcp并且我只想写列Col1Col2,我可以获得一些语法帮助吗?我在这里挣扎。

谢谢,

泰德

0 投票
0 回答
1968 浏览

sql-server-2005 - SqlBulkCopy 在哪个阶段检查约束?

如果为 SqlBulkCopy 插入设置了 SqlBulkCopyOptions.CheckConstraints 选项,它是在每条记录之后单独检查约束,还是在插入所有记录之后?

我有一个检查约束,将某些列与父行进行比较(通过 UDF)。我正在使用 MS Sql Server 2005。http: //msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlbulkcopyoptions.aspx上的文档只说“在插入数据时检查约束”。

在我的测试中,似乎直到最后才检查外键,但在添加下一行之前检查每一行的检查约束。这听起来很奇怪。我还没有找到任何关于此的文档。