问题标签 [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.
.net - SqlBulkCopy 导致 SQL Server 2000 上的死锁
我在 .NET 3.5 中有一个自定义的数据导入可执行文件,SqlBulkCopy 基本上可以更快地插入大量数据。该应用程序基本上采用输入文件,处理数据并将其批量上传到 SQL Server 2000。它是由一位使用 SQL 2008 数据库环境构建它的顾问编写的。环境差异会导致这种情况吗?SQL 2000 确实具有 BulkCopy 所基于的 bcp 实用程序。所以,当我们运行它时,它触发了一个死锁错误。
错误详细信息:事务(进程 ID 58)与另一个进程在锁定资源上死锁,并已被选为死锁牺牲品。重新运行事务。
我已经尝试了很多方法来尝试解决它。比如临时设置连接字符串变量MultipleActiveResultSets=true,虽然不太理想,但还是会报死锁错误。我还确保这不是连接超时问题。
这是功能。有什么建议吗?
c# - 关于 SQL 批量复制的问题
我想知道如何同时进行批量插入和批量复制?我有 2 个表应该受到批量复制的影响,因为它们都相互依赖。
所以我想要它,如果在插入表 1 时记录死亡,它会被回滚并且表 2 永远不会更新。此外,如果表 1 插入良好且表 2 更新失败,则表 1 会回滚。
这可以通过批量复制来完成吗?
编辑
我应该提到我正在通过 C# 进行批量插入。
它看起来像这样,但这是我一直在研究的一个例子。所以我不确定是否必须将其更改为存储过程(不确定它的外观以及 C# 代码的外观)
c# - 如何在 C# 中为数据表的数字字段插入空值?
考虑我动态生成的数据表包含以下文件Id,Name,Mob1,Mob2
如果我的数据表有这个它会成功插入,
但是当它是这样的时候,它会失败地说,
The given value of type String from the data source cannot be converted to type decimal of the specified target column.
我通过读取一个 csv 文件来生成我的数据表,
任何建议如何在 C# 中的 BulkCopy 期间为数字字段插入空值...
编辑:
我试过这个dt.Columns["Mob2"].AllowDBNull = true;
,但它似乎不起作用......
c# - 为什么在 iis 下运行的 asp.net 网站中 sqlbulkcopy 的这种奇怪行为?
我正在SqlClient.SqlBulkCopy
尝试将 csv 文件批量复制到数据库中。调用 ..WriteToServer 方法后出现以下错误。
“来自数据源的字符串类型的给定值无法转换为指定目标列的十进制类型。”
这是我的代码,
在visual studio开发服务器下运行时没有错误,但是在iis下运行时却给了我一个错误.....
这是我的 sql server 表详细信息,
c# - 可以在 SQL BulkCopy 之后取回 PrimaryKey ID 吗?
我正在使用 C# 并使用 SqlBulkCopy。我有一个问题。我需要在一个表中进行批量插入,然后将另一个批量插入到另一个表中。
这2个有PK/FK关系。
所以这些表具有一对一的关系,但我不确定如何取回批量插入所做的所有 PK Id,因为我需要它们用于表 B。
编辑
我可以做这样的事情吗?
这应该找到刚刚插入 sql 批量复制的所有行。我不确定如何从中获取结果,然后从 SP 对它们进行批量插入。
我能看到的唯一问题是,如果用户一次只做一个记录,并且这条语句同时运行,它可能会尝试在“产品评论表”中插入一行两次。
所以说我喜欢一个用户使用手动方式,而另一个用户大约同时使用大众方式。
手动方式。 1. 用户提交数据 2. Linq to sql 制作产品对象并用数据填充并提交。3. 此对象现在包含 ProductId 4. 为 Product review 表创建另一个 linq to sql 对象并插入(同时发送步骤 3 中的 Product Id)。
大众方式。 1. 用户从共享数据的用户那里获取数据。2. 抓取分享用户的所有产品行。3. 发生在产品行上的 SQL 批量复制插入。4. 我的 SP 选择了仅存在于 Product 表中并满足其他一些条件的所有行 5. 对这些行进行批量插入。
那么如果步骤 3(手动方式)与步骤 4(大众方式)同时发生会发生什么。我认为它会尝试两次插入同一行,从而导致主要约束执行。
c# - 如何找到违规列?无法从字符串转换为 int32
我正在使用 SqlBulkCopy。所以我制作了一个数据表并指定了它的列,然后将行添加到数据表中,然后尝试插入它。
System.InvalidOperationException is unhandled by user code Message=The given value of type String from the data source cannot be convert to type int of the specified target
我一直收到这个错误。问题是我有 3 个 int 列,但我不知道它是哪一个。
我什至在每个 int 列上加上了它的类型。
好像还是有问题。那么在堆栈跟踪或 int 异常中的哪个位置会说它死亡的实际列?
c# - 如何使用 SqlBulkCopyColumnMappingCollection?
我想创建一个 SqlBulkCopy 方法,通过参数传递特定数据,我可以将其用于所有批量插入。
现在我需要对其中一些进行映射。我不知道如何制作 SqlBulkCopyColumnMappingCollection,因为这是我将映射集合传入并使用它的计划。但是我不知道如何制作它。我不能让它成为一个新的对象。
这就是我现在所拥有的。我怎样才能添加它做映射把它传递进去?
c# - 将关系(规范化)数据表快速插入 SQL Server 2008 数据库
我试图找到一种比我现在使用的 Linq 更好、更快的方法来插入大量数据(~50K 行)。我试图写入本地数据库的数据位于序列化并从 WCF 接收的 ORM 映射数据列表中。我热衷于使用 SqlBulkCopy,但问题是表是规范化的,实际上是具有一对多关系的序列或互连表。
这是一些说明我的观点的代码:
其中 dbAccess.InsertMeeting 看起来像这样:
提前感谢您的任何答案。博扬
exception - 使用 SqlBulkCopy 处理错误 - 会不会更难?
这里的想法很少。我有一个案例,我使用 SqlBulkCopy 将数据泵入数据库,大约在中途我遇到了不同的异常(主键违规、索引违规等)。
我已经确认这些违规行为是真实的,需要在数据中进行更正。然而,令人恼火的是,如果我使用 DataAdapter 写入数据库(这会慢得多),DataSet 中的坏行会打开 HasErrors,这样我就可以轻松找到它们并处理事情。使用 SqlBulkCopy?齐尔奇。纳达。祝你好运找到导致你的问题的人,因为你得到的只是一个错误名称(比如“yada yada yada 中的主键违规,等等等等”)就是这样。
有什么建议么?我不敢相信没有办法得到这些错误。使用标准 BCP,我认为您甚至可以将这些内容泵入日志文件。我们不能用 SqlBulkCopy 做这样的事情吗?
谢谢,
c# - SqlBulkCopy with Byte[] DataTable 列错误
我有一个强类型数据集,其中包含一个数据表,其中一个列作为 byte[] 列,我试图将其插入到 binary(4) 数据库表字段中。我可以毫无问题地设置 byte[] 列值,但是当我在数据表上运行 sqlbulkcopy 时收到以下异常:
“来自数据源的 Int32 类型的给定值无法转换为指定目标列的二进制类型。”
数据表是一个大型数据表,sqlbulkcopy 可以很好地处理数据表和数据库表减去 byte[]/binary(4) 列。以下是我插入的使用 .NET 2.0 破坏 SqlBulkCopy 的代码。