微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

sql-server-2005 – SqlBulkInsert – 如何设置Fire Triggers,Check Constraints?

使用具有有限权限的数据库用户,使用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

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

原文地址:https://www.jb51.cc/mssql/79177.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐