どうすれば、Sybase のデータベース エンジンがレコードのソートされていないリストを数値順以外で返すようにできますか?
~~~
ID が順番に生成されるテーブルから選択するアプリケーションでエラーを再現する必要があるという問題がありますが、ID は選択の最後の ID ではありません。
説明させてください。
ID STATUS
_____________
1234 C
1235 C
1236 O
上記は3つのIDです。これらがの結果になるコードがありました
select @p_id = ID from table where (conditions).
ただし、status = 'O' (オープン) をチェックする句はありませんでした。Sybase は最後に返されたレコードを変数に保存することを思い出してください。
~~~~~
テストチームに、結果が機能しないものを提供するよう求められています。Sybase が順序付けされていないリストで上記を選択すると、昇順で表示される可能性があります。または、データベース エンジンが格納されたデータのブロックまたは何か技術的なマジックを変更する必要がある場合、順序がめちゃくちゃになる可能性があります。元のエラーは、プロシージャーが 1236 ではなく 1234 を返す場合でした。
Sybase がデータのブロックを検索し、効果的に昇順検索を「中断」して、最後のレコードではなく他のレコードを返すように100% 保証できる方法はありますか? (最大値を除くすべてのレコードは、すべて「クローズ」されているため、エラーになります)
テーブルを正確な数値順に検索しないようにする魔法の SQL コードが必要です。理想的には、テスト チームはまったく同じ手順が壊れていることを確認したいので、手順を変更する必要はありません (order by id desc
結果をごまかすのと同じくらい簡単です)。