如何在SQL Server中返回和存储select的结果?

如何在SQL Server中返回和存储select的结果?,sql,sql-server,sql-server-2008,stored-procedures,Sql,Sql Server,Sql Server 2008,Stored Procedures,我正在SQL Server存储过程中进行选择。这个select将结果返回给调用者,这正是我所需要的,但是我还需要在存储过程的其余部分使用select中的一个字段 现在,我正在做选择作为正常。然后我创建一个临时表,并再次执行相同的选择,但我将结果插入临时表。有更好的方法吗 对于上下文,我本质上是从数据库中拉出一棵树。有多个一对多的表,我使用从一个级别获得的ID拉出下一个级别 您将从基表中选择两次数据(一次用于返回用户,一次用于插入临时表),另一次从临时表中选择一次(用于在存储过程中使用前面的列)

我正在SQL Server存储过程中进行选择。这个select将结果返回给调用者,这正是我所需要的,但是我还需要在存储过程的其余部分使用select中的一个字段

现在,我正在做选择作为正常。然后我创建一个临时表,并再次执行相同的选择,但我将结果插入临时表。有更好的方法吗


对于上下文,我本质上是从数据库中拉出一棵树。有多个一对多的表,我使用从一个级别获得的ID拉出下一个级别

您将从基表中选择两次数据(一次用于返回用户,一次用于插入临时表),另一次从临时表中选择一次(用于在存储过程中使用前面的列)

如果从基表选择查询比较复杂,可以做的是只从基表选择一次数据到临时表,然后使用临时表两次(一次将数据返回给用户,一次使用列)


这将减少执行时间,因为复杂查询只执行一次,而其他选择仅限于从临时表中进行简单选择。

能否向我们展示您尝试过的内容、数据库内容和预期输出。我的输出很好。看起来应该有一个更有效的方法,因为我基本上是在做每一个select两次。例如,有“大陆”表、“国家”表和“省份”表。我需要撤出亚洲和南美洲的所有国家以及这些国家的所有省份。每个大陆和每个国家之间都有一个独特的id。每个国家和每个省之间都有一个唯一的id。不确定我是否完全理解(即,你是否有固定数量的级别),但你有没有为此研究过CTE?这里有一个或多个示例:这允许您在一个查询中缝合一个自引用表。我确实看到了这个问题,但我的情况不同,因为我没有一个自参考表。相反,我有三张不同的桌子。第二个表存储a类型实体和B类型实体之间的一对多关系。第三个表存储B类型实体和C类型实体之间的一对多关系。输出参数可能是您需要的。。