我正在SQL Server存储过程中进行选择。此选择将结果返回给调用者,这是我需要的,但我还需要在存储过程的其余部分中使用select中的一个字段。
现在,我正在做正常的选择。然后我创建一个临时表,并再次重新执行相同的选择,但我将结果插入临时表。有一个更好的方法吗?
对于上下文,我基本上是从数据库中提取树。有很多一对多的表,我使用从一个级别获得的ID来提升下一级别。
答案 0 :(得分:1)
您从基表中选择两次数据(一次用于返回用户,一次用于插入临时表),一次从临时表中选择(使用存储过程中的前一列)。
如果您从基表中选择查询很复杂,那么您可以做的是从基表中只选择一次数据到临时表,然后使用临时表两次(一次将数据返回给用户,一次使用专栏)。
这将减少执行时间,因为复杂查询只执行一次,而其他选择仅限于从临时表中进行简单选择。