• ベストアンサー

SQL Server:取得結果Order Byについて

SQL Server7.0なのですが、自分の環境では取得結果はテーブルのプライマリーキー昇順で暗黙のOrder Byがかかっているように動きます。 でもリリース先ではこのOrder Byが働かずバラバラな取得結果となっていてトラブルになりました。対処としては明示的にOrder Byを記述して直ったのですが、自分の環境で暗黙に並べ変わっているのはどうしてでしょうか?

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

  • ベストアンサー
  • YanYas
  • ベストアンサー率34% (26/75)
回答No.2

SYBASE と元は同じなので多分同じだと思うのですが・・・ 変わっていたらごめんなさい(^^;) プライマリーキーを設定した場合、実際にはインデックスが作成されていると思います。そのインデックスが、クラスタード・インデックスの場合、データベージレベルでの並べ替えが発生します。 そのため、「暗黙のOrder By」がかかったような結果になります。 テーブルのスキーマーをもう一度確認されてはいかがでしょうか? 予想ですと、テスト環境はクラスタード、リリース先ではノンクラスタードになっているのではないかと思います。 (補足)MS SQLServer の原型はSYBASE SQL Server v4.2でした・・・どうでもいいですね(^^;)

prio
質問者

補足

わざわざ、ありがとうございます。確認してみます。

その他の回答 (1)

  • y_nakkan
  • ベストアンサー率46% (24/52)
回答No.1

データを登録した順番が、たまたまプライマリキーの 順番と一致したのでは?

prio
質問者

補足

ご回答ありがとうございます。例えば登録順を1,5,3としてもその列をプライマリーキー設定すると1,3,5に行の順番が物理的に入れ替わっているように見えますし、取得結果もキー順となるのです。

関連するQ&A