我正在使用具有有限权限的数据库用户将 ADO.NET 2.0 SqlBulkCopy 对象从 C# 方法批量插入到 MS SQL 2005 数据库中。当我尝试运行该操作时,我收到错误消息:
批量复制失败。用户对表 'theTable' 没有 ALTER TABLE 权限。
'FIRE_TRIGGERS'
如果表具有触发器或 检查约束,但未'CHECK_CONSTRAINTS'
将批量提示指定为批量复制命令的选项,则需要对批量复制操作的目标表具有 ALTER TABLE 权限。
我阅读了一些文档并使用构造函数创建了大容量复制对象,该构造函数允许我指定此类内容:
SqlBulkCopy bc = new SqlBulkCopy(
System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"],
SqlBulkCopyOptions.FireTriggers & SqlBulkCopyOptions.CheckConstraints);
但这并没有改变任何东西 - 我收到与以前相同的错误消息。我尝试摆弄其他一些 SqlBulkCopyOptions 值,但没有运气。我真的认为这会解决问题,我错过了什么吗?
在将表上的 ALTER 授予我的用户后,我测试了该过程,并且操作成功。但是,这不是我的情况的选择。