Я выполняю массовую вставку с объектом ADO.NET 2.0 SqlBulkCopy из метода С# в базу данных MS SQL 2005, используя пользователя базы данных с ограниченными разрешениями. Когда я пытаюсь запустить операцию, я получаю сообщение об ошибке:
Ошибка массовой копии. Пользователь не имеет Разрешение ALTER TABLE на таблицу 'стол'. ALTER Разрешение TABLE требуется на целевая таблица операции массовой копии если в таблице есть триггеры или проверка ограничений, но
'FIRE_TRIGGERS'
или'CHECK_CONSTRAINTS'
объемные подсказки не указанные в качестве опций для массовой копии команда.
Я прочитал некоторую документацию и создал массивный экземпляр объекта с конструктором, который позволяет мне указать такие вещи:
SqlBulkCopy bc = new SqlBulkCopy(
System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"],
SqlBulkCopyOptions.FireTriggers & SqlBulkCopyOptions.CheckConstraints);
Но это ничего не меняет - я получаю такое же сообщение об ошибке, что и раньше. Я пытался возиться с некоторыми другими значениями SqlBulkCopyOptions, но не повезло. Я действительно думал, что это исправит проблему, я что-то упустил?
Я протестировал процедуру после предоставления ALTER в таблице моему пользователю, и операция прошла успешно. Однако это не вариант для моей ситуации.