这个是使用SqlBulkCopy进行批量复制导致的异常,此问题涉及大容量导入数据时,控制大容量导入操作是否执行(触发)触发器。大容量导入操作应只对包含支持多行插入的 INSERT 和 INSTEAD OF 触发器的表执行触发器。

SqlBulkCopy(insert bulk)命令语句在默认情况下会禁用触发器,可以启用FIRE_TRIGGERS;报错“如果某个大容量复制操作的目标表具有触发器或检查约束,但未指定“fire_triggers”或“check_constraints”大容量提示,则需要对该表具有“alter table”权限。”已说明并未指定fire_triggers且目标表有触发器,指定SqlBulkCopyOptions.FireTriggers即可启用,语句为:SqlBulkCopy sqlbulkcopy = new SqlBulkCopy(connectionString, SqlBulkCopyOptions.UseInternalTransaction | SqlBulkCopyOptions.FireTriggers)。

至此,该异常的原因和解决办法就是这样。

另外,MSDN表示“大容量导入数据时,您可以控制大容量导入操作是否执行(触发)触发器。大容量导入操作应只对包含支持多行插入的 INSERT 和 INSTEAD OF 触发器的表执行触发器”,所以对触发器是有要求的,一是insert触发器,二是instead of。

上面搞清楚之后,就是另外一个话题:一次插入多条数据,触发器在必要时需要使用游标来实现所需功能。

最新文章

  1. 错误"ORA-04091: table is mutating, trigger/function may not see it"的原因以及解决办法
  2. java new Date()得到的时间和系统时间不一样
  3. Elasticsearch聚合 之 DateRange日期范围聚合
  4. Java基础之处理事件——添加工具提示(Sketcher 9 with tooltips)
  5. web前端开发浏览器兼容性 - 持续更新
  6. python中xrange与range的异同
  7. JavaScript和prototype
  8. Mybatis-Spring SqlSessionTemplate 源码解析
  9. Scala入门系列(十一):模式匹配
  10. rubygem若干常用选项参数
  11. Linux下C语言生成可执行文件的过程
  12. ios uibutton加数字角标
  13. [C#] LINQ之LookUp
  14. MYSQL事务处理失效原因
  15. [apr] Apache Portable Runtime
  16. day34 线程池 协程
  17. 使用googletest进行C++单元测试(Netbeans为例)
  18. Hibernate---介绍
  19. I-team 博客的 gitlab-runner 持续集成实践
  20. Android解析ActivityManagerService(二)ActivityTask和Activity栈管理

热门文章

  1. Java编程思想:压缩
  2. Hybrid App从概念到实战
  3. 小记---idea springboot 报错没有get或者set方法
  4. AndroidStudio使用genymotion模拟器
  5. Git 安装及使用指南
  6. 支持微信页面右侧悬浮QQ在线客服
  7. java名词
  8. Web Worker 多线程
  9. 搭建PowerDNS+LAP+NFS+MySQL主从半节点同步实现LAMP架构
  10. SSD+HDD 安装ubuntu16.04+win7双系统