74

我有一个 SQL 查询(SQL Server)并生成报告,我想将该确切的报告存储在临时表中,以便以后可以使用它。现在的问题是我需要先创建临时表然后将SQL查询结果存储到其中,还是有什么方法可以动态创建表并存储查询结果?

4

5 回答 5

128

看看SELECT INTO。这将为您创建一个新表,如果您愿意,可以通过在表名前加上井号 (#) 作为临时表。

例如,您可以这样做:

SELECT * 
INTO #YourTempTable
FROM YourReportQuery
于 2012-09-07T18:50:50.743 回答
24

您可以使用select ... into ...创建和填充临时表,然后查询临时表以返回结果。

select *
into #TempTable
from YourTable

select *
from #TempTable
于 2012-09-07T18:51:29.433 回答
4

在 MySQL 中:

create table temp as select * from original_table
于 2012-09-07T20:19:14.887 回答
3

尝试:

exec('drop table #tab') -- you can add condition 'if table exists'
exec('select * into #tab from tab')
于 2012-09-07T18:53:46.667 回答
1

假设您现有的报告查询是

Select EmployeeId,EmployeeName 
from Employee 
Where EmployeeId>101 order by EmployeeName

并且您必须将此数据保存到临时表中,然后查询转到

Select EmployeeId,EmployeeName 
into #MyTempTable 
from Employee 
Where EmployeeId>101 order by EmployeeName  
于 2017-12-07T10:03:38.967 回答