如何在不声明表的情况下 SELECT * INTO [tmp table]?

问题描述 投票:0回答:2

我想在表上使用 select 语句并将结果插入到临时表变量中,但我没有声明带有列的临时表,我想像这样使用:

Declare #tmp table;

SELECT * INTO #tmp FROM myTable

这还应该声明 #tmp 的列和数据类型

sql-server-2005 sql-server-2008
2个回答
59
投票

您可以简单地执行此操作,而无需使用 DECLARE 命令 - 无论如何,该命令对 #temp 表无效,仅对 @table 变量有效。您是否尝试过以下操作而不首先尝试定义#tmp:

SELECT * INTO #tmp FROM myTable;

44
投票

有数据:

select *
into #tmp
from myTable

无数据:

select *
into #tmp
from myTable
where 0=1

顺便说一句,您可以使用表变量执行此操作。

select *
into @tmp
from myTable

表变量需要与列一起声明。

© www.soinside.com 2019 - 2024. All rights reserved.