- PR -

DTSパッケージで異DB間のUpdate実現方法について

1
投稿者投稿内容
ヤマハブラザーズ兄
会議室デビュー日: 2006/01/19
投稿数: 10
投稿日時: 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をかけてみたのですが、パッケージ完了までデータ参照が
出来ませんでした)

どなたかアドバイスよろしくお願い致します。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2006-01-21 00:35
異なるデータベースとおっしゃるのは、
同じサーバの異なるデータベースでしょうか。
サーバ自体が違うのでしょうか。

サーバが違えばリンクサーバの設定を行うことによって、
[server名].[database名].[schema名].[table名]でテーブルが参照できます。

サーバが同じなら、
[database名].[schema名].[table名]でテーブルが参照できます。
ヤマハブラザーズ兄
会議室デビュー日: 2006/01/19
投稿数: 10
投稿日時: 2006-01-23 09:51
かつのりさん

コメントどうもです!

リンクサーバの設定を行い、
[server名].[database名].[schema名].[table名]でupdateが出来ました。

助かりました。ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)