2016-09-28 9 views
0

Я новичок в пакетах SSIS и просто нуждаюсь в помощи по передаче данных из одного источника данных в свою собственную базу данных.Как передавать данные с использованием SSIS

Ниже мой поток данных:

enter image description here

Теперь у меня есть ODBC Source (Http_Requests Source), где я беру данные из таблицы базы данных PostgreSQL (см скриншот ниже для столбцов таблицы и данных):

Ниже OLE DB назначения, где он имеет таблицу я хочу передать данные (эта таблица в настоящее время пробел):

Теперь я попытался начать отладку, чтобы извлечь данные, но я получаю несколько Ошибки (отображаемые ниже):

enter image description here

Я полный новичок, так что я хотел бы некоторые рекомендации о том, что мне нужно включить, чтобы получить этот пакет SSIS для передачи данных через. Мне нужно включить оператор слияния и как его применить. Я слышал, вы можете написать слияние как proc и вызвать proc как команду sql. Означает ли это, что мне нужно будет написать proc в SSMS, а затем вызвать его в OLE DB Destination?

Если кто-то может предоставить пример и скриншот, это было бы очень полезно, поскольку я действительно новичок в SSIS.

Спасибо,

+0

Вы можете включить функцию «Задержка проверки» как истину –

+0

Попробуйте установить флажок «Держать идентификатор». –

ответ

0

Проверьте ограничение на таблицу назначения или отключите их перед запуском. Ниже вы можете использовать запрос. - Отключить все ограничения таблиц ALTER TABLE YourTableName NOCHECK CONSTRAINT ALL - Включить все ограничения Таблица ALTER TABLE YourTableName проверочное ограничение ALL

0

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

0

ошибка означает, что PerformanceId является столбец IDENTITY на вашем столе назначения. Столбцы IDENTITY доступны только для чтения, если не указано иное. Поэтому, если бы мы были в tSQL, чтобы иметь возможность вставить IDENTITY, мы включили IDENTITY_INSERT. Поскольку вы находитесь в SSIS, вы можете выполнить одно и то же, установив флажок «сохранить идентификатор».

ОДНАКО когда-либо вы получите об ошибке, как это обычно это признак того, что вы не должны быть отображение ID для Performance ID. Вопрос, который вы должны задать, - это идентификатор из вашего источника, который должен быть личным адресом таблицы назначения? Обычно нет, большую часть времени это будет другой столбец в качестве суррогатного ключа. Тогда вам нужно понять, возможно ли это. потому что если есть уникальное ограничение или первичный ключ, то идентификатор не может повторить, что означает, что вы должны знать, что столбец идентификатора вашего источника не приведет к дублированию первичного ключа.

Скорее всего, фактическое исправление, если вы хотите снять отметку с идентификатора из источника и проигнорировать значение.

0

Столбец PerformanceID (в цели) почти наверняка является столбцом идентификации, и именно поэтому он не работает. Возможно, вы не захотите его перенести (и SQL Server генерирует значения для PerformanceID, или вы можете проверить «Keep Identity».'

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

  • Нет связанных вопросов^_^