set-basedカーソルは本当に「正しい」選択ですか?時には、データを処理するときに手続き型プログラミングが絶対に避けられない場合もあります。私は現在、いくつかのレガシーコードの最適化に取り組んでいます。カーソルをリバースエンジニアリングして手続きプロセスにすることを望んでいました。今私はアルゴリズムの解読の最後にあり、実現しています。...レコードについた各選択は、前のすべてのレコードのプロセスの結果に依存するため、プロシージャであることが持っています。Serverの処理(CLRのSP、UDFのなど)でプロシージャコードを混合するための他の選択肢があります。SPを作ることに傾いています。カーソルを単純化するだけで、カーソルを保持することは、より速く簡単に行えます。答えSQLサーバーでは、少なくともグローバル一時表と表変数の両方を持つWHOWでは、サーバー側のカーソルを使用するシナリオを想像することはできません。従来のアプリで発見したように、すべてのコードを設定ベースにすることはできませんが、手続き的にレコードを反復処理する必要がある場合でも、カーソルは最悪の選択肢です。Bretana源カーソル以外の手続きを反復する場合は、どのようなことをお勧めしますか?そして、いいえ、これは手続き的でなければなりません。私はこれについて多くのことを考え、それを切り裂き、セットベースで行う方法はありません。私は完全にはわかりませんが、私は、前向きに読んでいるカーソルだけを比較する唯一のタイプのカーソルは、間違いなくサーバ側のカーソルではなく、上記のコードの構文表現であると考えています。それを直接行うことがあなたに与えるコントロールなしで。私はC#でクライアント/アプリケーションサーバー上のループを実行し、必要に応じてストアドプロシージャを呼び出します。通常、C#は開発や単体テストの方がはるかに高速で簡単ですが、CLRを使用してもデータベース内のすべての処理を行うストアドプロシージャよりも高速に実行できます。