当前位置:  开发笔记 > 编程语言 > 正文

SqlBulkInsert - 如何设置Fire触发器,检查约束?

如何解决《SqlBulkInsert-如何设置Fire触发器,检查约束?》经验,为你挑选了1个好方法。

我正在使用具有有限权限的数据库用户,使用C#方法将ADO.NET 2.0 SqlBulkCopy对象批量插入到MS SQL 2005数据库中.当我尝试运行该操作时,我收到错误消息:

批量复制失败.用户对表'theTable'没有ALTER TABLE权限.ALTER TABLE权限是必需上批量复制操作的目标表,如果该表具有触发器或检查约束,但'FIRE_TRIGGERS'还是 'CHECK_CONSTRAINTS'散装提示没有被指定为选项,以批量复制命令.

我阅读了一些文档并使用构造函数创建了批量复制对象,该构造函数允许我指定这样的东西:

    SqlBulkCopy bc = new SqlBulkCopy(
        System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"],
        SqlBulkCopyOptions.FireTriggers & SqlBulkCopyOptions.CheckConstraints);

但这并没有改变任何东西 - 我得到了和以前一样的错误信息.我尝试摆弄其他一些SqlBulkCopyOptions值,但没有运气.我真的以为这会解决这个问题,我错过了什么吗?

我在表上向用户授予ALTER后测试了该过程,操作成功.但是,这不适合我的情况.



1> James Orr..:

解决了!看起来我需要对标志枚举进行复习.当我应该对它们进行ORing时,我有点想要枚举值.

SqlBulkCopyOptions.FireTriggers & SqlBulkCopyOptions.CheckConstraints

计算结果为零(相当于SqlBulkCopyOptions.Default.)

SqlBulkCopyOptions.FireTriggers | SqlBulkCopyOptions.CheckConstraints

正确工作并允许批量插入完成.

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有