Почему преобразование команд SSIS OLE DB не вставляет все записи в таблицу? - PullRequest
0 голосов
/ 01 августа 2011

У меня есть пакет служб SSIS, который берет данные из таблиц в базе данных SQL и вставляет (или обновляет существующие строки) в таблицу, являющуюся другой базой данных.

Вот моя проблема после lookup,Я либо вставляю, либо обновляю строки, но более половины строк, входящих в вставку, не добавляются в таблицу.

Для вставки я использую объект команды Ole Db, в котором я использую команду вставкичто я проверил.Я выяснил, почему пакет работал без уведомления об ошибке, но все еще не вставлял все строки в таблице.

Я проверил в sqlProfiler, и он говорит, что команда RCP: Completed , которуюпредположить означает, что это предположительно сработало.

Если я выполняю вставку вручную в sql management studio с данными, которые мне дает sql profiler (значения, которые он использует для выполнения оператора вставки), он работает.Я проверил данные, и все, кажется, хорошо (нет незаконных данных в строки, которые не вставлены).

Я полностью потерян, как это исправить, у кого-нибудь есть идея?

1 Ответ

2 голосов
/ 02 августа 2011

Есть ли какая-либо конкретная причина использовать команду OLE DB вместо пункта назначения OLE DB для вставки записей?

РЕДАКТ. 1:

Итак, вы видите x строк (скажем, 100) отправлено из вывода соответствия преобразования «Уточняющий запрос» в назначение OLE DB, но вставляются только y строк (скажем, 60).Это верно?Вместо вставки в вашу фактическую таблицу назначения, попробуйте вставить в фиктивную таблицу, чтобы увидеть, все ли строки перенаправлены правильно.Вы можете создать фиктивную таблицу, нажав кнопку New ... в месте назначения OLE DB.Он создаст для вас таблицу, соответствующую входным столбцам.Это может помочь сузить проблему.

РЕДАКТИРОВАТЬ 2:

Какое имя таблицы вы пытаетесь использовать?Я не думаю, что это имеет значение.Мне просто любопытно, если имя является зарезервированным ключевым словом.Еще одна вещь, о которой я могу подумать, это то, существуют ли какие-либо другие процессы, которые могут инициировать какое-либо действие в вашей целевой таблице (либо внутри пакета, либо вне пакета)?Я подозреваю, что какой-то другой процесс может удалять строки из таблицы.

...