2016-07-26 1 views
1

私はSSISのETLタスクを作成しています。この作業では、 'Where'句のいくつかの参照と条件に対して別のテーブルを使用するテーブル 'Vendor'を更新しようとしています。ここに私がしたいことがあります -SSISを使用して2つ以上のテーブルから結合および更新を実行する方法は?

ALTER TABLE Vendor ADD Imported BIT 
Update Vendor 
SET  Imported = 1 
-- (133 row(s) affected) 

Update Vendor 
SET  Imported = 0 
where VendorName in (Select VendorName from MyDatabase..Vendor) 

Update l 
SET  VendorName = t.VendorName, -- Vendor name looks imported one has proper Capital letters in name, use the one from to-be-imported one 
    Address1 = t.Address1, 
    Address2 = t.Address2, 
    City = t.City, 
    State = t.State, 
    Country = t.Country, 
    PostalZip = t.PostalCode, 
    Phone = t.NewPhone, 
    Email = t.Email  
From MyDatabase..Vendor l, Vendor t 
where l.VendorName = t.VendorName 
and t.Imported = 0 
-- (2 row(s) affected) 

SSISパッケージの適切な手順を教えてください。私は同じものに対してSQL実行タスクを使用することができますが、SQL実行タスクのような別のアプローチを使用したいと思います。各SQL文に対して別々のタスクを作成する必要があります。 あなたの貴重な返信は歓迎されます。

+0

SQLステートメントごとに別々のタスクは必要ないと思います。同じSqlタスクの実行で実行できます。 – vercelli

+0

どうすればいいのか説明できますか? – Anonymous

+0

コントロールフローにSQL実行タスクを追加して、SQLステートメントウィンドウにSQLステートメントを貼り付けます。また、毎回 'alter table'を実行する必要がありますか? – vercelli

答えて

1

このように複数のステートメントを実行するSQLタスクを実行するには、それぞれのステートメントをセミコロンで終了する必要があります。これを行うと、それは動作します。

+0

私はこれを持っていますが、代わりの方法がありますか? – Anonymous

+0

これらのステートメントをすべてストアドプロシージャに配置し、Execute SQLステートメントからストアドプロシージャを呼び出すことができます。 –

関連する問題