【发布时间】:2012-10-21 08:42:17
【问题描述】:
标题中的问题很难用词来表达。假设您有一个名为 Users 的表,假设它有一个名为“Id”的身份/主键列。假设您想在同一个事务中获取您所知道的只是一个属于相当特定的 WHERE 子句或其他内容的 Id 实例,然后在一个非常冗长的 SELECT 语句中重复回收它,该语句随后立即执行。这可以在 SQL Server 中完成吗?基本上我要避免的是以下内容:
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 子句来避免使用两个不同的连接或其他任何东西,但即使是相同的连接和事务不断重新查找相同的确切信息也是非常浪费的。
我希望避免让 Sql Server 多次从 Id 列中搜索该单个值,并且我还希望能够将它放在同一个 Sql 事务和连接中。如何才能做到这一点?谢谢!
【问题讨论】:
-
您是在 VB 中执行此操作还是在存储过程中执行此操作?
-
我很好奇。 . .为什么要关心 SELECT 是否在单个事务中执行?
-
我们不要说“让我们说”这么多次。
-
@Blam 假设我们按照您的要求做;我们怎么说呢? ;)
-
@AndrewBarber 我绑定了一个编辑。
标签: sql sql-server tsql variables select