6

共通キーに基づいて、テーブル内のフィールドを別のテーブルのデータで更新しようとしています。単純な SQL の場合は、次のようになります。

Update EHSIT
set e.IDMSObjID = s.IDMSObjID
from EHSIT e, EHSIDMS s
where e.SITENUM = s.SITE_CODE

ただし、2 つのテーブルは同じデータベースにないため、SSIS を使用して更新しようとしています。ああ、sitenum/site_code は一方が varchar で、もう一方が nvarchar であるため、一致するようにデータ変換を行う必要があります。

どうすればいいのですか?
ソースが EHSIDMS、宛先が EHSIT のデータ フロー オブジェクトがあります。ユニコードを非ユニコードに変換するデータ変換があります。しかし、一致に基づいて更新するにはどうすればよいですか? データ アクセス モードとして SQL コマンドを使用して宛先を試しましたが、ソース テーブルがないようです。更新するフィールドをマップするだけの場合、フィールドの一致に基づいてどのように制限しますか?

ソース テーブルを Excel などにエクスポートして、そこから入力しようとしていますが、データ変換ステップを削除するだけで十分なようです。

データ更新タスクか何かがあってはいけませんか?それはデータ フロー変換タスクの 1 つですか?私はそれがどれなのかわかりませんか?

4

4 に答える 4

2

完全なデータベース名をいつでも使用できます。

UPDATE server1.databasename.EHSIT
SET E.IDMSOBJID = S.IDMSOBJID
FROM server1.databasename.EHSIT E, server2.databasename.EHSIDMS S
WHERE E.SITENUM = S.SITE_CODE



[serverpath].[database].[databaseobject]
于 2009-06-08T06:21:35.717 に答える
0

ゆっくりと変化するディメンションを使用すると、一致する値としてビジネスキーが使用され、値の変化に応じて更新する他の属性が機能するように見えることがわかりました。

Devtron、私はこれを試してみましたが、サーバー パスに関するエラーが発生しました。多くの / が含まれています。また、特に頻繁に発生する操作の場合、これは非常に見下されているとも言われました。

于 2010-06-10T15:20:07.947 に答える