Идентификационные вставки с использованием мастера импорта импорта SSIS

112
11

У меня есть текстовый файл, который я использую в SSIS 2012 для загрузки в таблицу, разработанную специально для данных в SQL Server 2012. У меня есть столбец, идентифицированный как первичный ключ с включенной идентификационной спецификацией (в столбце исходного текста нет столбцов сопоставлены с этим столбцом). Когда я использую мастер импорта и экспорта SQL Server для создания пакета с флажком "Включенный идентификатор", установленным в диалоговом окне "Сопоставление столбцов", я получаю следующие ошибки и данные не загружаются. Если я удалю столбец с первичным ключом и спецификацией идентификации и снова запустим пакет SSIS, данные будут загружаться правильно без ошибок. Почему я не могу загрузить данные с помощью первичного ключа и идентификатора? Благодарю.

[Destination - shoppingExtractPrecise_WithIdentity3 [104]] Ошибка: код ошибки SSIS DTS_E_OLEDBERROR. Произошла ошибка LE DB. Код ошибки: 0x80004005. Доступна запись OLE DB. Источник: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80004005 Описание: "Оператор завершен". Доступна запись OLE DB. Источник: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80004005 Описание: "Невозможно вставить значение NULL в столбец" shoppingExtract_ID ", таблица" shopping_Pharmacy.dbo.shoppingExtractPrecise_WithIdentity3 "; столбец не допускает нулей. INSERT не работает.".

[Назначение - shoppingExtractPrecise_WithIdentity3 [104]] Ошибка: Код ошибки SSIS DTS_E_INDUCEDTRANSFORMFAILUREONERROR. "Destination - shoppingExtractPrecise_WithIdentity3.Inputs [Destination Input]" не удалось, поскольку произошел код ошибки 0xC020907B, а расположение строки ошибки в "Destination - shoppingExtractPrecise_WithIdentity3.Inputs [Destination Input]" указывает на ошибку при ошибке. Произошла ошибка в указанном объекте указанного компонента. До этого могут появляться сообщения об ошибках с дополнительной информацией о сбое.

[SSIS.Pipeline] Ошибка: код ошибки SSIS DTS_E_PROCESSINPUTFAILED. Метод ProcessInput на компоненте "Destination - shoppingExtractPrecise_WithIdentity3" (104) не выполнен с кодом ошибки 0xC0209029 при обработке ввода "Destination Input" (117). Выбранный компонент возвратил ошибку из метода ProcessInput. Ошибка относится к компоненту, но ошибка является фатальной и приведет к прекращению работы задачи потока данных. До этого могут появляться сообщения об ошибках с дополнительной информацией о сбое.

[Source - SOL 08112016_txt [173]] Ошибка: попытка добавить строку в буфер задачи потока данных завершилась неудачно с кодом ошибки 0xC0047020.

[SSIS.Pipeline] Ошибка: код ошибки SSIS DTS_E_PRIMEOUTPUTFAILED. Метод PrimeOutput для Source - SOL 08112016_txt возвращает код ошибки 0xC02020C4. Компонент возвращал код сбоя, когда движок трубопровода назывался PrimeOutput(). Значение кода отказа определяется компонентом, но ошибка является фатальной, и конвейер прекратил выполнение. До этого могут появляться сообщения об ошибках с дополнительной информацией о сбое.

спросил(а) 2021-01-27T14:53:39+03:00 8 месяцев, 3 недели назад
1
Решение
65

Когда флажок "Включить идентификационные вставки" проверен, это означает, что SQL ожидает, что вы импортируете значения в столбец Identity. Если вы не импортируете значения в этот столбец или не импортируете строки, которые имеют значение NULL для этого столбца, вы получите полученную вами ошибку.

Когда он НЕ ПРОВЕРЕН, вы можете импортировать значения во все остальные столбцы, а SQL Server автоматически заполнит столбец для вас.

Итак, из того, что вы описываете, похоже, что вы хотите оставить этот ящик NOT CHECKED.

ответил(а) 2021-01-27T14:53:39+03:00 8 месяцев, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема