• ベストアンサー
  • 困ってます

DTSパッケージでテキストファイルのインポート

SQLServer2000で、DTSパッケージを使ってテキストファイルをインポートしているのですが、インポート先テーブルに主キーを設定していないためか、インポートするたびにレコードの順番が変わってしまいます。 例) テキストファイル fld1|fld2|fld3 1111|AAAA|aaaa 2222|BBBB|bbbb 3333|CCCC|cccc SQLServerのテーブル fld1|fld2|fld3 2222|BBBB|bbbb 3333|CCCC|cccc 1111|AAAA|aaaa のようになってしまいます。 これをテキストファイル通りのレコード順でインポートするにはどうすればいいのでしょうか? ちなみに実際のファイルにはソートをかけられるフィールドはありません。 よろしくお願いします。

共感・応援の気持ちを伝えよう!

  • SQL Server
  • 回答数1
  • 閲覧数455
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.1

インデックスをつけるのが一番簡単だとおもいます。 基本的にはいれた順に並ぶとおもうのですが、そうならない場合もあります。よくわかりません。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

kikaida-さんのアドバイスの通り、クラスタ化インデックスを設定したところ、期待値となりました。ACCESSだとキー項目など設定していなくても、テキストファイルの順番でインポートされるため、SQLServerでもそう出来るだろうと勝手に思い込んでました。 ご回答ありがとうございました。大変助かりました。またの機会がありましたら、よろしくお願いします。

関連するQ&A

  • DTSパッケージについて教えてください

    お世話になります。 DTSパッケージを使ってCSVファイルをSQLサーバーにのテーブル(CSVファイルと同じ項目構成)に転送したいのですが、すべてのレコードを転送するのではなく、中身が変更されたレコードのみ更新することはできるのでしょうか? もしできないのならどういう方法がベストか教えてください。

  • DTSパッケージを使用して。。。

    開発環境はSQLサーバー2000, vb6です。 数10万件のレコードが入っているテーブルのデータを、DTSパッケージを利用し、VB6のシステムよりテーブルのデータを全件テキストに書き出したいと思っています。 現状DTSパッケージを使用すれば処理が早いということがわかっただけで、宣言の方法すらわかっていません。 宣言~テキストに出力するまで、どのような流れでソースを書けばよいのでしょうか。。。 参考URLでもかまいませんので、ご教授いただけますようよろしくお願い致します。

  • DTSパッケージを使ってTableから画像ファイルを取り出したい

    古いデータベースに格納されている画像ファイル・ドキュメントファイルを取り出したいと思っています。 DTSインポートエクスポートを使って、テキストテーブルからの取り出し・保存は成功しました。 でも、画像やPDFファイルが格納されているDBはどうやって取り出して保存すればいいのでしょうか? おそらく、エクスポート対象のDBを選択した後に表示される「変換先の選択」で設定するのだろうとは思うのですが・・・ DTSパッケージもあまり使ったことがなかったので大雑把すぎる質問かと思いますが、よろしくお願いいたします。

  • アクセス フィールド値を分割したい

    いつも大変お世話になっております。 初心者につき、ご教示いただけますと幸いです。 アクセスのテーブル・フィールドに AAAA,BBBB,CCCC という値が入ってしまうため 「,」を区切りに分割したいです。 テーブル:T_商品 フィールド: 顧客ID|注文内容(連結で入ってしまうフィールド) 0001|AAAA 0002|AAAA,BBBB 0010|AAAA,BBBB,CCCC 0101|AAAA,BBBB,CCCC,DDDD,・・・ といったように、連結した値の数はまちまちで、 最大10個になります。 ちなみに、 これを ↓フィールド名 顧客ID|注文商品   に 0001|AAAA 0002|AAAA 0002|BBBB 0010|AAAA 0010|BBBB 0010|CCCC  ・  ・  ・ といったように、 最終的には 1つのフィールドにまとめたいです。 ご教示のほど、よろしくお願い致します。 尚、前半の「連結値を分割」だけでも テーブル更新(分割毎にフィールドに挿入)できれば、とても助かります! →この場合、予備フィールドなどを作成しておくか、  ワークテーブルなどで処理になりますでしょうか。 是非とも、よろしくお願い致します。

  • oracle ダンプファイルのサイズとインポート先の表領域の使用サイズ

    oracle ダンプファイルのサイズとインポート先の表領域の使用サイズの関係 あるダンプファイル(2.5GB)をオラクルDBへimportしたら、 そのDBの表領域が10GBほど使用されました。 2.5GBのものをimportしたのに、なぜここまで表領域を消費するのでしょうか? (これまでこのようなことはありませんでした。) 表領域の使用サイズをもっと少なくするにはどうすればよいのでしょうか? エクスポート時のコマンド exp aaaa/aaaa file=bbbb.dmp log=exp_cccc.log consistent=y インポート時のコマンド imp aaaa/aaaa file=bbbb.dmp log=imp_cccc.log エクスポート時に「compress=n」をつけたり、 インポート時に「ignore=y」をつけたりしたのですが、 とくに変化はありませんでした。

  • DTSパッケージについて

    SQLServerかなりの初心者のものです。 SQLServer2000を使用しています。DTSパッケージを使用して、SQL上の既存のデータをAccessへコピーしたいと思います。 今まで、ウィザードを使用して丸ごとテーブルをコピーしたことはありますが、データを変換(加工?)してコピーしたことはありません。 たとえば、半角カナで表記されたものを、全角カナに変換しAccessのテーブルへ移動させることなどは可能でしょうか? できれば元テーブルは既存のソフトのデータベース内にありますので、半角のままにしておきたいです。 移動先の書式だけを全角にしたいのですが可能でしょうか? データの変換を行うには、ActiveX Scriptを利用するという段階までは調べました。 もしその場合はどのようなコード記述をすればよろしいでしょうか。大変お手数ですが、VBのコードをどなたか教えていただけないでしょうか。 よろしくお願いします。

  • ACCESS97 : レコードが長いファイルのインポートについて

    ACCESS97で、文字列を文字数ではなくバイト数で扱うことは可能でしょうか。 1レコードが20,000ByteあるテキストファイルをACCESS97のテーブルに インポートしようとしています。 インポート先のテーブルのフィールドをすべて「メモ型」にしたのですが、 インポート定義を利用してインポートを行おうとすると、 「レコードが大きすぎます。」というエラーが発生します。 そこで、プログラムでファイルを1レコードずつ読み込みながらテーブルに インサートしていく方法を取ろうかと思います。 テキストファイルは半角と全角が混在しているのですが、困ったことに 全角のデータが入るべきところに半角が混ざっている可能性があります。 たとえば、全角10文字入るべき場所に半角の空白が20文字入っていると いうような状態です。 この状態で StrConv関数でUnicodeに変換してからMidB$関数で文字を抜き 出すと、フィールドがずれてきます。 1文字目から10文字分、ではなく1Byte目から10Byte、などというように文 字列を扱うことができれば、全角と半角がどのような位置で混在していても 関係なくプログラム上で扱うことができると思うのですが,方法がわかりません。 また、これ以外で長いレコードのファイルをインポートできる方法があれば 教えていただきたいと思います。 長くなってしまいましたが、ご回答をいただけますようよろしくお願いいたします。

  • 連結したフィールドでグループ化し、他のフィールドの最大値のレコード全体を抽出

    図面管理のデータベースをつくっています。 連結したフィールドでグループ化し、他のフィールドの最大値のレコード全体を抽出したいのですが どのようにしたらいいのでしょうか? いろいろ調べたのですがなかなかよい結果が出ません。 お知恵をおかしください。よろしくお願いします。 mysqlバージョン:5.0.45 例 テーブル:a(図面管理) a_id(id) a1(図番) a2(種類用紙サイズ) a3(枝番) a4(図面名) a_id a1 a2 a3 a4 1   1 3P 0 aaaa 2   2 3P 0 bbbb 3   2 3P 1 bbbb 4   1 4P 0 cccc 5   1 4P 1 cccc 6   1 4P 1 cccc このテーブルのa1とa2を連結します。(連結フィールド:ren) a_id a1 a2 a3 a4  ren 1   1 3P 0 aaaa 13P 2   2 3P 0 bbbb 23P 3   2 3P 1 bbbb 23P 4   1 4P 0 cccc 14P 5   1 4P 1 cccc 14P 6   1 4P 2 cccc 14P 連結したもの(ren)をグループ化しますこのとき、枝番の値が高いレコードだけ抽出します。 a_id a1 a2 a3 a4  ren 1   1 3P 0 aaaa 13P 3   2 3P 1 bbbb 23P 6   1 4P 2 cccc 14P この最終的な結果を出す方法をお教えください。 おねがいします。

    • ベストアンサー
    • MySQL
  • ACCESSにて2つのテーブルの比較

    2つのテーブルA,テーブルBがあります。テーブルBのデータ以外のデータを選ぶにはどうのようにすれば良いのでしょうか? テーブルA data--- aaaa bbbb cccc dddd aaaa cccc テーブルB data--- aaaa bbbb 欲しい結果 テーブルA data--- cccc dddd cccc よろしくお願い致します。

  • ACCESSのフォーム上に連番番号を表示したい

    お世話になります フォームは単票型でなく、表型です↓ 例 1 aaaa1 bbbb1 cccc1 2 aaaa2 bbbb2 cccc2 3 aaaa3 bbbb3 cccc3 aaaa1等、右側はテーブルからデータを表示しています この、左の1,2,3、は単なる、表示で関連付けるデータは ありません この単なる1,2,3、はどのようにだすのですか よろしくお願いします