教えてください。

SQLサーバー7.0SP2 からSQLサーバー2000SP3A
にDBの更新をしましたが、テーブルをODERBYの
指定なしだと表示される順番が違います。
これは、コード体系が変更になったせいでしょうか。
あるいは、SQL7.0のまま表示順をパラメーターで変更等ができますか。
よろしくお願いします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:andi No.1

回答回数448ベストアンサー獲得回数0

ポイント10pt

多くのRDBMSではデータをシーケンシャルに格納せずに、検索効率やデータ効率などを考慮して最適な箇所に格納するため、ソート条件を指定しない限りは格納順にデータを取得することはできません。

ただしデータを格納し始めた最初の頃は、近くに保存されることがある為、ソート順を指定しなくても順序正しく取得できることもあります(が、保障はされません)


その為、思い通りのソート順でデータを取得するためには、やはりORDER BY句を指定してあげる必要があります。

id:cx20 No.2

回答回数607ベストアンサー獲得回数108

ポイント130pt

http://support.microsoft.com/kb/314546/ja/

SQL Server を実行しているコンピュータ間でデータベースを移動する方法

SQL Server 7.0 と SQL Server 2000 では、既定の照合順序が異なりますので、

その影響を受けているのだと思います。


sp_detach_db / sp_attach_db を使用して、データ移行を行った場合は、

移動元の照合順序が保持されるようです。


また、ALTER TABLE で COLLATE 句を使用すれば、一応、後から照合順序を変更できたかと

思いますが、列ごとに設定しなければならず、大変面倒だったと記憶しています。


一番確実なのは、ORDER BY 句を指定することだとは思いますが・・・。

http://support.microsoft.com/kb/270042/ja/

SQL Server の互換性照合順序について

URL は照合順序に関する情報です。

http://www.microsoft.com/japan/msdn/sqlserver/sql2000/IntlFeatur...

Microsoft SQL Server 2000 のインターナショナル機能

参考情報です。


・SQL Server 7.0 の照合順序

・SQL Server 2000 の照合順序


に関する情報が記載されています。

  • id:cx20
    申し訳ございません。

    私が回答した「照合順序」は、ORDER BY 無しのときの
    ソート順とは関係ないようです。

    知ったかぶりな回答をしてしまい、申し訳ございません。

    id:andi さんの回答にあるように、ORDER BY 指定がない場合の
    ソート順は、DB に INSERT した順番になるケースが多いようです。

    ポイントはお返し致します。

    また、

    http://www.hatena.ne.jp/1120546566

    にて、同じ回答をしてしまい、恥ずかしい限りです。

    穴があったら入りたい・・・_| ̄|○

    以後、気をつけます。m(_ _)m
    --
  • id:cx20
    参考情報。

    ↓ このあたりが参考になるのでは?と思います。

    ■ レコードの並べ替え(整列)〜ORDER BY句
    http://www.grapecity.com/japan/devclub/Consultants/how_to_database/003/page02.htm

    自分もちゃんと読んでおこうと思います。
    --

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません