2009-03-17 4 views

ответ

15

http://msdn.microsoft.com/en-us/library/ms162802.aspx

ППГ из операции требуется ВЫБЕРИТЕ разрешение на исходной таблице.

Для работы bcp минимально требуются разрешения SELECT/INSERT для целевой таблицы. Кроме того, разрешение TABLE ALTER требуется, если какое-либо из следующих условий: существует

  • Препятствия и CHECK_CONSTRAINTS намека не указан. ms162802.note (ru-ru, SQL.100) .gif Примечание: Отключить ограничения по умолчанию. Чтобы включить ограничения явно, используйте параметр -h с подсказкой CHECK_CONSTRAINTS.

  • Триггеры существуют, и подсказка FIRE_TRIGGER не указана. ms162802.note (ru-ru, SQL.100) .gif Примечание: По умолчанию триггеры не запускаются. Чтобы активировать триггеры явно, используйте параметр -h с подсказкой FIRE_TRIGGERS.

  • Вы используете параметр -E для импорта значений идентификации из файла данных.

ms162802.note (ан-нас, SQL.100) .gifNote: Требование разрешения TABLE ALTER на таблицу назначения нового в SQL Server 2005. Это новое требование может привести к BCP скрипты, которые не выполняют спусковые и проверки ограничений не выполняются, если учетная запись пользователя не имеет табличных разрешений ALTER для целевой таблицы.

+2

Для использования в .NET: вар bulkCopy = новый SqlBulkCopy (System.Configuration.ConfigurationSettings.AppSettings [ "ConnectionString"], SqlBulkCopyOptions.FireTriggers | SqlBulkCopyOptions. CHECKCONSTRAINTS); – dan

1

Для успешного выполнения класса SqlBulkCopy необходимы только SELECT/INSERT perms. Класс выдает инструкцию INSERT BULK в отношении целевой таблицы SQL Server. Проверено сегодня на одном из наших серверов-разработчиков.

6

Чтобы задать эти подсказки из .net:

var bulkCopy = new SqlBulkCopy(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"], 
     SqlBulkCopyOptions.FireTriggers | SqlBulkCopyOptions.CheckConstraints); 
Смежные вопросы