- ベストアンサー
SQL Server:取得結果Order Byについて
SQL Server7.0なのですが、自分の環境では取得結果はテーブルのプライマリーキー昇順で暗黙のOrder Byがかかっているように動きます。 でもリリース先ではこのOrder Byが働かずバラバラな取得結果となっていてトラブルになりました。対処としては明示的にOrder Byを記述して直ったのですが、自分の環境で暗黙に並べ変わっているのはどうしてでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
SYBASE と元は同じなので多分同じだと思うのですが・・・ 変わっていたらごめんなさい(^^;) プライマリーキーを設定した場合、実際にはインデックスが作成されていると思います。そのインデックスが、クラスタード・インデックスの場合、データベージレベルでの並べ替えが発生します。 そのため、「暗黙のOrder By」がかかったような結果になります。 テーブルのスキーマーをもう一度確認されてはいかがでしょうか? 予想ですと、テスト環境はクラスタード、リリース先ではノンクラスタードになっているのではないかと思います。 (補足)MS SQLServer の原型はSYBASE SQL Server v4.2でした・・・どうでもいいですね(^^;)
その他の回答 (1)
- y_nakkan
- ベストアンサー率46% (24/52)
回答No.1
データを登録した順番が、たまたまプライマリキーの 順番と一致したのでは?
質問者
補足
ご回答ありがとうございます。例えば登録順を1,5,3としてもその列をプライマリーキー設定すると1,3,5に行の順番が物理的に入れ替わっているように見えますし、取得結果もキー順となるのです。
補足
わざわざ、ありがとうございます。確認してみます。