2016-07-28 1 views
0

テーブルにコンポジットキーがある場合はどうすればこのコードを使用できますか。私は1つのプライマリキーを持っていません。私は複合 "AppID"と "OriginID"を持っています。どのように私はこの論理を適用することができますか?コンポジットキーでカーソルを使用しない各行

+0

この質問は不明です。テーブル構造、サンプルデータ、期待される結果を提供してください。つまり、これに答える方法はありません... – sgeddes

+0

これは迷信です。行を繰り返し処理する場合は、カーソルの最悪の側面を既に複製しています。これは、カーソルを使用しないでアドバイスされたアドバイスが原因です。ですから、正直ではなく、システムに組み込まれた機能を使用して、行の反復処理(カーソル)を使用してください。あるいは、 'YOURSPROC'がセットに基づいて再作成され、反復を排除できるかどうかを決定します。 –

答えて

0

私のポストはOPに答えてはいませんが、カーソルを使わないように(カーソルを置かずにタイトルに記載されているように)、トップ1(セットベースのループ)そのような問題に対する他の解決法。

ループ内のトップ1を選択しても、パフォーマンスの向上には役立ちません。なぜなら、テーブルスキャンのトップ1リードとテーブルのすべてのローの論理リード2-3を選択するからです(ノースウィンドのカスタマーテーブルを使用して、特に、我々はFAST FORWARDカーソルを使用している場合に、設定された統計値)で

は、それが選択トップ1よりも優れている行につき1つの論理読み取り、につながる、プラスすることにより複合キーと順序のためにWHERE条件の複雑さを避けますストアドプロシージャの実行中に実行されます。

関連する問題