0

同じサーバー上の2つの異なるデータベースで実行すると異なる結果が返されるストアドプロシージャがあります。

たとえば、1つのDBで返されます-4, -3.5, 3, -2.5, -2, -1,0

他のDBでは返されます3, -4, 2.5, -1, -1.5

これは最近起こり始めました。最初にこれは製品データベースで気付きましたが、すべてのテスト データベースは製品データベースとは異なる正しい出力を返していました。1 つのテスト データベースを prod で更新した後、テスト データベースの手順の結果も誤った出力に変更されました。何が起こっているのか、またはデータベースレベルで何が変更されたのか、同じ手順が異なる出力を返す原因となった可能性のある手がかり。

これが何かを引き起こした可能性がある場合に備えて、プロシージャは一時テーブルを使用しています。

4

1 に答える 1

4

はい..両方のデータベースで同じ結果ですが、結果の順序が異なります。両方のデータベースは、まったく同じ手順を実行している同じサーバー上にあります。

ORDER BY行を特定の順序で返す場合は、必ず句を使用してください。SQL では、何が機能しているように見えても、行を順序付けする他の方法はなく、節を避ける理由もありません。

詳細: http://tkyte.blogspot.com/2005/08/order-in-court.html

本質的に同じ答えを持つ同様の SO の質問:

于 2013-11-05T16:04:58.453 に答える