- - PR -
DTSのエクスポートの仕様について(SQL Server2000)
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-12-08 10:20
お世話になります。
DTSパッケージを利用してテーブルデータのエクスポート を繰り返し実施しているのですが、エクスポートの対象 ファイルをCSVにしている場合とエクセルにしている場合 とで処理内容に差異が発生します。 CSVの場合は出力内容が上書きで出力され、前回出力された 内容がキャンセルされ、最新のデータのみが記述されるの ですが、エクセルの場合は出力データが追記式となり、 前回出力されたデータに最新のデータが追記される形となります。 この結果はDTSの仕様なのでしょうか。 また、当処理を決定するプロパティなどはあるのでしょうか。 (パッケージ作成画面を見た限りでは無いようにおもわれるのですが。。。) ご存知の方が居られましたらご教授頂けます様、よろしくお願いいたします。 | ||||
|
投稿日時: 2005-12-11 12:07
お疲れ様です。 仕様かどうかは MS の方しか回答できないと思いますが, 現状で kiyoharu さんのおっしゃっているように動作します。 さて, この問題ですが, ■ことを「Excel ファイル」としてみないで考えると理由がよくわかります おそらくウィザードで作成されたパッケージをご覧になっていると思いますので, Excel へのデータパイプは 「CREATE」や「DELETE」など,データベースと同じように操作されていると思います。 ウィザードでたとえば Access などにデータをパイプしてみるとよくわかるのですが ■「変換」オプションでは「変換先テーブルに行を追加」がデフォルトになっています これが原因で, Excel も Access もSQL Server も「OLEDB データソースとして」認識可能なソースについては追記が既定の動作です。 (ETL としての役割を考えればこれは自然な動作です) また, ■「変換」オプションの「変換先テーブル内の行を削除」は単に事前に「DELETE」するタスクが追加されるだけ の動作になりますので, 出来上がったパッケージの中身を眺めてもオプションなどはありません。 よって, kiyoharu さんの要件では, ■中身を事前に消す または ■新しい受け皿用のシートを作成する タスクを定義してあげればよいと思います。 いかがでしょうか? ---------- TimberLandChapel.com Workshop http://blogs.timberlandchapel.com/blogs/workshop/archive/2005/12/06/519.aspx | ||||
|
投稿日時: 2005-12-11 22:22
TLC様、ご回答ありがとうございます。
(いつも教えていただいて、大変勉強になっております。) 確かに、仕様かどうかはMSでないと回答できないですね。 愚問でした。(お恥ずかしい。。) ご説明いただいた具体例でやっと納得がいきました。 解決策の方は提案くださいました ・新しい受け皿用のシートを作成するタスク を定義することで対応したいと思います。 詳説いただき、ありがとうございました。 |
1