加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server-2005 – SqlBulkInsert – 如何设置Fire Triggers,Ch

发布时间:2020-12-12 06:24:04 所属栏目:MsSql教程 来源:网络整理
导读:使用具有有限权限的数据库用户,使用ADO.NET 2.0 SqlBulkCopy对象从C#方法执行批量插入到MS SQL 2005数据库.当我尝试运行该操作时,我收到错误消息: Bulk copy failed. User does not have ALTER TABLE permission on table ‘theTable’. ALTER TABLE permiss
使用具有有限权限的数据库用户,使用ADO.NET 2.0 SqlBulkCopy对象从C#方法执行批量插入到MS SQL 2005数据库.当我尝试运行该操作时,我收到错误消息:

Bulk copy failed. User does not have
ALTER TABLE permission on table
‘theTable’. ALTER
TABLE permission is required on the
target table of a bulk copy operation
if the table has triggers or check
constraints,but 'FIRE_TRIGGERS' or
'CHECK_CONSTRAINTS' bulk hints are not
specified as options to the bulk copy
command.

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

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

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

我在表上向我的用户授予ALTER后测试过程,操作成功.然而,这不是我的情况的选择.

解决方法

解决了!看起来我需要刷新标志枚举.当我应该将它们进行ORing时,我正在对这个枚举值进行比较.
SqlBulkCopyOptions.FireTriggers & SqlBulkCopyOptions.CheckConstraints

评估为零(相当于SqlBulkCopyOptions.Default.)

SqlBulkCopyOptions.FireTriggers | SqlBulkCopyOptions.CheckConstraints

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读