Sql Query创建一个新表

时间:2012-05-03 15:04:22

标签: sql

任何人都可以为sql查询提供语法,该查询采用已创建的表并将一些数据插入到具有新id(主键)的新表中吗?到目前为止我试过这个

SELECT ((ID INT IDENTITY(1,1) PRIMARY KEY), column1, column2, column3)
INTO table_name
FROM table_name 

我一直想出一个语法错误。

5 个答案:

答案 0 :(得分:4)

SELECT column1, column2, column3
INTO table_name_new
FROM table_name_old

像这样使用

答案 1 :(得分:3)

INSERT INTO newtable (column1, column2, column3)
SELECT (column1, column2, column3) 
FROM table_name  

答案 2 :(得分:2)

INSERT INTO new_table
(Column1, Column2 . . . )

SELECT Column1, Column2 FROM old_table

请勿在插入列表中包含标识列(主键和自动生成的数字)。

答案 3 :(得分:2)

只需按下面所示,插入记录时会自动创建新的ID

insert into table1 (col1,col2,col3) select col1,col2,col3 from table2;

答案 4 :(得分:1)

根据documentation on MSDN,IDENTITY属性将通过SELECT INTO子句传递,但约束不会。这意味着如果您在源表中包含原始IDENTITY列,则可以使用IDENTITY列创建新表,但新表中的列将不是主键。

这样做的理智方法是在创建表后使用ALTER TABLE,如@Kai建议的那样。