任何人都可以为sql查询提供语法,该查询采用已创建的表并将一些数据插入到具有新id(主键)的新表中吗?到目前为止我试过这个
SELECT ((ID INT IDENTITY(1,1) PRIMARY KEY), column1, column2, column3)
INTO table_name
FROM table_name
我一直想出一个语法错误。
答案 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建议的那样。