239

我想从 SQL Server 中的选择查询结果中创建一个表,我试过了

create table temp AS select.....

但我有一个错误

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

4

6 回答 6

413

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

Select * into new_table  from  old_table 
于 2013-05-22T05:14:23.670 回答
100

利用SELECT...INTO

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

例子,

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]
于 2013-05-22T05:02:42.900 回答
31

请小心,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)
于 2013-12-19T09:57:40.493 回答
15

请试试:

SELECT * INTO NewTable FROM OldTable
于 2013-05-22T05:03:10.757 回答
15

尝试使用 SELECT INTO....

SELECT ....
INTO     TABLE_NAME(table you want to create)
FROM source_table
于 2013-05-22T05:06:38.073 回答
4
Select [Column Name] into [New Table] from [Source Table]
于 2013-05-22T05:03:43.107 回答