2012-03-23 4 views
0

ビューから別のテーブルへの同期ジョブを実行したいと思います。 DBビュー(リンクされたサーバーから)があり、dbビューを2つのテーブルに分割するストアドプロシージャを作成したいと思います。ビューからのストアドプロシージャインポートデータ

  • PERSON_TYPE(=>のいずれか '従業員' や '顧客')
  • firstnameの
  • メール

テーブルをPERSON_ID: デシベルビューは次のようになります「従業員」と「顧客」です。どちらも少なくとも「lastname」、「firstname」、「email」という属性を持っています。 データ行がすでにテーブルに存在する場合は、更新が挿入されます。属性 'person_type'は私が使用しなければならない魔法のテーブルを決定することです。

私はms sql server 2008 r2を使用します。

誰でも私にストアドプロシージャの作成を手伝ってもらえますか?または私にヒントを与えますか?私はあなたがDBのビューから顧客と従業員のための2つのテーブルを作成する必要があることを理解し、あなたの記述から、事前

+3

? –

答えて

0

感謝。

これを高速化するには、 ssisパッケージを作成し、「条件付き分割」オプションを使用して、person_type列に基づいて表を分割します。対応するテーブルを挿入します。

あなたは、このパッケージを保存し、uは必要なときにそれを実行するか、またはuが

+0

よろしくお願いします。どうも – user1288039

1

は、各タスクを実行するための1を2つのマージ文を作成しジョブとしてそれを作ることができます。

1つのMERGE文は、Employeeテーブルに挿入/更新/削除し、もう1つはCustomerテーブルにも同じ処理を行います。

例:あなたがこれまで持っている何

MERGE YourCustomerTable TargetTable 
USING (SELECT * FROM YourView WHERE Column = 'Customer') SourceTable ON TargetTable.CustomerID = SourceTable.CustomerID 
WHEN MATCHED THEN UPDATE........... 
WHEN NOT MATCHED THEN INSERT (ColumnA, ColumnB) Values (SourceTable.ColumnA, SourceTable.ColumnB) 
関連する問題