2013-08-21 3 views
0

Я просто пытаюсь выяснить, является ли это правильным способом для выполнения этой задачи. Любые другие предложения по улучшению этого очень ценятся.Передача данных из представления из одной базы данных в таблицу в другую базу данных

У меня есть следующее в моем пакете SSIS.

enter image description here

  1. Задача потока данных и установили соединение OLE DB к базе данных источника, где точка зрения.
  2. Выполнение SQL-задачи - Я выполняю запрос с INSERT INTO Destination Except (все те записи, которые уже есть у источника.)
  3. Задача отправки почты - отправить электронное письмо.

Как узнать, что передача данных прошла успешно? Чтобы я мог использовать отправку почты на , укажите успех или неудачу.

Как запланировать этот пакет так, чтобы он автоматически запускается (каждый вторник.)

Я попытался предложение ниже. Обратитесь к новой задаче потока данных.

enter image description here

OLE DB Источник - указывает на вид на сервере базы данных 1 Уточняющий получает все строки из источника OLE DB. (rowcount по источнику и по поиску) совпадений.

В задаче поиска я сконфигурировал вывод ошибки для использования «Перенаправить строку» во всех сопоставленных столбцах. ..

На назначения OLE DB (Таблица назначения, где у него уже есть подмножество записей из источника Так Настроен выход ошибки, чтобы получить unmatches строки для вставки

Когда я исполняю пакет - я получаю первичный ключ ошибка ограничителем, - Невозможно вставить дубликат ключа

Любые предложения

ответ

1

Вы хотите, чтобы дважды щелкнуть разъем от Execute SQL Task к Send Mail Task в настоящее время он зеленый, который указывает на то, что будет принимать только этот путь на успех.?. Вы захотите обновить минусы пока не закончится, если вам не удастся добиться успеха или неудачи.

Похоже, что у вас есть поток данных, который вытаскивает все данные из вашего источника и записывает их в промежуточный стол. В своей Execute SQL Task вы затем используете запрос для добавления данных в свою целевую таблицу, где она не существует.

Это может быть объединено в единый поток данных. Между вашим OLE DB Source и OLE DB Destination добавьте задачу поиска. Так как вы в 2005 году, Lookup ведет себя немного иначе, чем 2008+. Вы напишете запрос, который отменит бизнес-ключи в целевой таблице, а затем сравнивает это с тем, что исходит от вашего источника OLE DB. Сопоставьте эти ключи в интерфейсе.

Вам нужны только строки, которые не совпадают, поэтому вам нужно получить «непревзойденные записи» из поиска. В 2005 году опция для Unmatched output не существовала, поэтому вам нужно будет перенаправить вывод ошибки в ваш OLE DB Destination.

У Энди Леонарда хорошая записка о том, как это сделать: Configuration an SSIS 2005 Lookup Transformation for a Left Outer Join Единственное различие для вашего случая состоит в том, что вам не нужны согласованные строки. Вместо Ignore Failure вы хотите выбрать Redirect Row. Затем, когда вы подключаетесь к Lookup to OLE DB Destination, вам будут представлены два варианта. Зеленый коннектор - это согласованный красный коннектор - это несогласованные строки. Свяжите Красный путь к вашему месту назначения

+0

Спасибо! Внутри вкладки Data Flow - теперь у меня есть источник OLE DB (исходная база данных и данные из View), Look Up (просматривает данные просмотра из источника) и OLE DB Destination (содержит целевую базу данных и таблицу) - поскольку этот SSIS пакет будет выполняться каждую неделю, я хочу, чтобы были переданы несовпадающие записи. Я не мог понять «Маршрут вывода ошибки в ваш OLE DB Destination». Любой пример ссылок, которые помогут мне настроить это, будет отличным. Я ценю вашу поддержку. – kalls

+0

Я обновил описание и ссылку на статью – billinkc

+0

Спасибо за ссылку и статью. У меня все еще есть проблемы с этим. Когда вы укажете «Вы напишете запрос, который отменит бизнес-ключи в целевой таблице, а затем сравнивает это с тем, что исходит от вашего источника OLE DB. Сопоставьте эти ключи в интерфейсе« Как это сделать? Я могу получить исходную и поисковую задачу для компиляции (отображает зеленым цветом), а назначение не выполняется из-за ограничения первичного ключа. Я делаю вывод Lookup Error из поиска до назначения OLE DB. Прошу прощения, если это все еще неопределенно. Я высоко ценю вашу поддержку. – kalls

Смежные вопросы