2016-09-28 61 views
0

我是SSIS軟件包的新手,只需要協助就如何將數據從一個數據源傳輸到我自己的數據庫。如何使用SSIS傳輸數據

下面是我的數據流:

enter image description here

現在我有一個ODBC數據源(Http_Requests來源),我需要從PostgreSQL數據庫表中的數據(見下面的截圖爲表列數據):

下面是OLE DB目標在那裏有我想要將數據傳輸到表(該表目前空白):

現在我試着開始調試來提取數據,但我得到了幾個錯誤(顯示如下):

enter image description here

我是一個完整的新手,所以我想我需要什麼才能得到這個SSIS包跨傳輸數據,包括一些指導。我是否需要包含合併聲明以及如何應用它?我聽說你可以寫一個合併作爲一個proc,並調用proc作爲一個sql命令。這是否意味着我需要在SSMS中編寫一個過程,然後在OLE DB目標中調用它?

如果有人可以提供一個例子和截圖,那麼這將是非常有用的,因爲我真的是新來的SSIS。

謝謝

+0

您可以啓用'延遲驗證'爲真 –

+0

嘗試檢查「保持身份」框。 –

回答

0

在運行目標表時檢查約束或禁用它們。 以下是您可以使用的查詢。 - 禁用所有表約束 ALTER TABLE YourTableName NOCHECK約束中的所有 - 啓用所有表約束 ALTER TABLE YourTableName CHECK約束中的所有

0

蜱保持身份 箱或刪除表上的主鍵。在應用更改後,不要忘記通過打開sis中的映射來刷新元數據。

0

的錯誤意味着PerformanceId是你的目標表的IDENTITY列。除非另有說明,否則IDENTITY列是隻讀的。所以如果我們在tSQL中能夠插入IDENTITY,我們會打開IDENTITY_INSERT。因爲你在SSIS中,你可以通過選中「保持身份」框來完成同樣的事情。

無論其當過你類似這樣的錯誤,通常是你不應該映射ID來表現ID的標誌。你必須要問的問題是你的來源的身份應該是目標表的身份嗎?通常不會,大多數情況下它會成爲另一列作爲代理鍵。那麼你必須明白,如果這是可能的。因爲如果存在唯一的約束或主鍵,那麼標識不能重複,這意味着您必須知道您的源ID列不會導致重複的主鍵違規。

如果您要從源中取消選中ID並忽略該值,那麼實際修復的可能性很大。

0

列的PerformanceID(在目標中)幾乎肯定是標識列,這就是爲什麼它不起作用。您可能不想傳輸它(並讓SQL Server爲PerformanceID生成值,或者您可以選中「保持身份」。'

相關問題