- - PR -
DTSパッケージで異DB間のUpdate実現方法について
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-01-20 18:07
SqlServer初心者のヤマブラ兄です、2回目の書き込みです。
WinServer2003+SqlServer2000のシステム構築に携わっており、 DTSパッケージを使って、異なるデータベース(以下、DB:1とDB:2と 記述します)間で、全く同じレイアウトのテーブルのupdateを 行おうとしています。 とりあえず、以下の2つの方法で出来る事は確認しました。 <方式1>1.DB:2のテーブルAを、SQL実行タスクを使って 特定条件でDelete 2.データ変換タスクを使って、DB:1からDB:2へ テーブルAをデータコピー(1の特定条件で絞込み) <方式2>1.DB:2のテーブルA'を、SQL実行タスクを使ってtruncate ※テーブルA'は、テーブルAのワークテーブル 2.データ変換タスクを使って、DB:1のテーブルAから DB:2のテーブルA'へデータコピー(特定条件で絞込み) 3.SQL実行タスクを使って、DB:2のテーブルA'から DB:2のテーブルAへupdate 以上ですが、ごらんの通り、「DB:1のテーブルAからDB:2のテーブルA を直接update」する方法がわかりません。 方式1の場合、一旦DB:2のテーブルAからデータが消えてしまう為、 処理中はデータ参照が出来ません。 また、方式2の場合は処理中のデータ参照は出来ますが、ワークテーブル を挟む分、レスポンスに問題が在ります。 何とかDTSにて「DB:1のテーブルAからDB:2のテーブルAを直接update する」方法は無いものでしょうか? (もしくは、方式1のパターンでも、処理中に処理前のデータを 参照する事が出来れば良いのですが。パッケージ実行中に”ReadUnCommited” でSelectをかけてみたのですが、パッケージ完了までデータ参照が 出来ませんでした) どなたかアドバイスよろしくお願い致します。 |
|
投稿日時: 2006-01-21 00:35
異なるデータベースとおっしゃるのは、
同じサーバの異なるデータベースでしょうか。 サーバ自体が違うのでしょうか。 サーバが違えばリンクサーバの設定を行うことによって、 [server名].[database名].[schema名].[table名]でテーブルが参照できます。 サーバが同じなら、 [database名].[schema名].[table名]でテーブルが参照できます。 |
|
投稿日時: 2006-01-23 09:51
かつのりさん
コメントどうもです! リンクサーバの設定を行い、 [server名].[database名].[schema名].[table名]でupdateが出来ました。 助かりました。ありがとうございました。 |
1