如何从SQL Server 2008中的选择查询结果创建表

时间:2013-05-22 04:57:39

标签: sql sql-server sql-server-2008

我想在SQL Server中从select查询结果创建一个表,我试过

create table temp AS select.....

但我收到了错误

  

关键字“AS”附近的语法不正确

6 个答案:

答案 0 :(得分:297)

使用以下语法从SQL Server 2008中的旧表创建新表

Select * into new_table  from  old_table 

答案 1 :(得分:66)

使用SELECT...INTO

  

SELECT INTO语句创建一个新表并用其填充   SELECT语句的结果集。 SELECT INTO可用于   将来自多个表或视图的数据合并到一个表中。它也可以   用于创建一个包含从a中选择的数据的新表   链接服务器。

实施例,

SELECT col1, col2 INTO #a -- <<== creates temporary table
FROM   tablename

标准语法,

SELECT  col1, ....., col@      -- <<== select as many columns as you want
        INTO [New tableName]
FROM    [Source Table Name]

答案 2 :(得分:25)

请小心, MSSQL:"SELECT * INTO NewTable FROM OldTable"

并不总是一样的 MYSQL:"create table temp AS select.."

我认为有时会出现这种情况(在MSSQL中) 不保证新表中的所有字段都与旧表中的字段相同。

例如:

create table oldTable (field1 varchar(10), field2 integer, field3 float)
insert into oldTable (field1,field2,field3) values ('1', 1, 1)
select top 1 * into newTable from oldTable

并不总是屈服:

create table newTable (field1 varchar(10), field2 integer, field3 float)

但可能是:

create table newTable (field1 varchar(10), field2 integer, field3 integer)

答案 3 :(得分:10)

尝试使用SELECT INTO ....

SELECT ....
INTO     TABLE_NAME(table you want to create)
FROM source_table

答案 4 :(得分:9)

请尝试:

SELECT * INTO NewTable FROM OldTable

答案 5 :(得分:2)

从[源表]

中选择[新表]中的[字段名称]