Вставка SqlBulkCopy с колонкой Identity

c# identity-insert sqlbulkcopy sql-server

Вопрос

Я использую объект SqlBulkCopy чтобы вставить пару миллионов сгенерированных строк в базу данных. Единственная проблема заключается в том, что таблица, в которую я вставляю, имеет столбец идентификатора. Я попытался установить SqlBulkCopyOptions в SqlBulkCopyOptions.KeepIdentity и установить столбец идентификации 0 , DbNull.Value и null . Ни один из них не сработал. Я чувствую, что мне не хватает чего-то довольно простого, если кто-то может просветить меня, что было бы фантастически. Благодаря!

edit Чтобы уточнить, у меня нет идентификационных значений, установленных в импортируемом DataTable . Я хочу, чтобы они были сгенерированы как часть импорта.

edit 2 Вот код, который я использую для создания базового объекта SqlBulkCopy .

SqlBulkCopy sbc = GetBulkCopy(SqlBulkCopyOptions.KeepIdentity);
sbc.DestinationTableName = LOOKUP_TABLE;

private static SqlBulkCopy GetBulkCopy(SqlBulkCopyOptions options = 
    SqlBulkCopyOptions.Default) 
{
    Configuration cfg = WebConfigurationManager.OpenWebConfiguration("/RSWifi");
    string connString =
    cfg.ConnectionStrings.ConnectionStrings["WifiData"].ConnectionString;
    return new SqlBulkCopy(connString, options);
}

Принятый ответ

Чтобы таблица назначения назначила идентификатор, не используйте параметр SqlBulkCopyOptions.KeepIdentity . Вместо этого не сопоставляйте личность с источником и не SqlBulkCopy его из источника для отправки в SqlBulkCopy .


Популярные ответы

Заполните ColumnMapping в BulkCopy объекта и не отображают столбец идентификаторов. Столбец идентификации будет создан целевой базой данных.



Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему