gpt4 book ai didi

sql-server-2005 - SqlBulkInsert - 如何设置火灾触发器,检查约束?

转载 作者:行者123 更新时间:2023-12-03 20:08:28 25 4
gpt4 key购买 nike

我正在使用具有有限权限的数据库用户将 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 时,我对 enum 值进行了按位 AND 运算。

SqlBulkCopyOptions.FireTriggers & SqlBulkCopyOptions.CheckConstraints

计算结果为零(相当于 SqlBulkCopyOptions.Default。)
SqlBulkCopyOptions.FireTriggers | SqlBulkCopyOptions.CheckConstraints

工作正常并允许批量插入完成。

关于sql-server-2005 - SqlBulkInsert - 如何设置火灾触发器,检查约束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/373057/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com