2016-09-28 21 views
0

SSISパッケージが新しく、データソースから自分のデータベースにデータを転送する方法についての支援が必要です。SSISを使用してデータを転送する方法

以下

は私のデータフローである:

enter image description here

今、私は私が(表の列とデータについては、以下のスクリーンショットを参照)PostgreSQLデータベースのテーブルからデータを取得ODBCソース(Http_Requests出所)を持っている:

以下は

(このテーブルは、現在空白である)、それは私がにデータを転送するテーブルを持っているOLE DB先である:

今、私は、データを抽出するためにデバッグを開始しようとしましたが、私はいくつかを取得しますエラー(下に表示):

enter image description here

私は私は全体のデータを転送するには、このSSISパッケージを取得するために含める必要があるかについていくつかのガイダンスをしたいと思いますので、私は完全な初心者です。私はマージステートメントを含める必要がありますか、どのように私はそれを適用します。あなたはprocとしてマージを書いて、procをSQLコマンドとして呼び出すことができると聞きました。つまり、SSMSにprocを書き込んだ後、OLE DB Destination内で呼び出す必要がありますか?

誰かが例とスクリーンショットを提供することができれば、私はSSISにとって本当に新しいので、非常に役に立ちます。

は、

+0

'遅延確認 'を有効にすることができます –

+0

[アイデンティティを保持]チェックボックスをオンにしてください。 –

答えて

0

宛先テーブルの制約を確認するか、実行前に無効にします。 以下は使用できるクエリです。 - すべてのテーブル制約 ALTER TABLE YourTableName NOCHECK CONSTRAINT ALL を無効にする - ALL

0

ティックありがとうアイデンティティ ボックスを維持するか、テーブルの上に主キーをドロップします。変更を適用した後、sisのマッピングを開いてメタデータを更新することを忘れないでください。

0

エラーがPerformanceIdがあなたの先テーブルのIDENTITY列であることを意味し、すべてのテーブル制約に ALTER TABLE YourTableNameチェック制約を有効にします。 IDENTITYカラムは、特に指定しない限り読み込み専用です。したがって、IDENTITYを挿入できるようにするためにtSQL内にいたら、IDENTITY_INSERTを有効にします。あなたはSSISにいるので、「アイデンティティを保持する」ボックスをチェックすることで同じことを達成することができます。

もつともあなたはこのようなエラーが出るこれまで、それは通常、あなたがパフォーマンスIDにIDをマッピングしてはいけません兆候であるとき。あなたが尋ねなければならない質問は、ソースからのアイデンティティがデスティネーションテーブルのアイデンティティであると考えられているかどうかです。通常、ほとんどの場合、代理キーとして別の列になります。それが可能かどうかを理解する必要があります。ユニーク制約またはプライマリキーが存在する場合、アイデンティティを繰り返すことができないため、ソースのidカラムで重複したプライマリキー違反が発生しないことを知る必要があるためです。

ソースからIDのチェックを外して値を無視する場合は、実際の修正よりも多い可能性があります。

0

(ターゲット内の)列はほぼ確実にID列であるため、機能していません。あなたはそれを転送したくないかもしれません(そして、SQL ServerがPerformanceIDのための値を生成するか、「あなたのアイデンティティを保持する」をチェックすることができます。'

関連する問題