タイトルに質問を言うのはちょっと難しいです。Usersという名前のテーブルがあり、「Id」という名前のID/主キー列があるとします。同じトランザクションで、かなり特定のWHERE句などに含まれるIdのインスタンスが1つだけであることがわかっているものを取得し、その直後に実行される非常に長いSELECTステートメントで繰り返しリサイクルするとします。これはSQLServerで実行できますか?基本的に私が避けようとしているのは次のようなものです。
Dim id As Int32 = DBA.OneTimeQuery("SELECT Id FROM users <where clause>").Rows(0)(0)
Return DBA.OneTimeQuery("SELECT <a lot of different things, involving multiple sub
-selects that have to pull from the variable id>")
'DBA.OneTimeQuery returns a DataTable
最初のwhere句をリサイクルすることで、2つの異なる接続などの使用を回避できることはわかっていますが、同じ接続とトランザクションでさえ、まったく同じ情報を再検索し続けるのはかなり無駄です。
Sql ServerがId列からその単一の値を複数回検索することを避けたいです。また、同じSqlトランザクションと接続にそれを配置できるようにしたいです。これはどのように行うことができますか?ありがとう!