2

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

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

我不断提出语法错误。

4

5 回答 5

4
SELECT column1, column2, column3
INTO table_name_new
FROM table_name_old

像这样使用

于 2012-05-03T15:15:50.897 回答
3
INSERT INTO newtable (column1, column2, column3)
SELECT (column1, column2, column3) 
FROM table_name  
于 2012-05-03T15:07:56.357 回答
2
INSERT INTO new_table
(Column1, Column2 . . . )

SELECT Column1, Column2 FROM old_table

不要在插入列表中包含标识列(具有自动生成的数字的主键)。

于 2012-05-03T15:06:03.773 回答
2

就像下面这样,插入记录时会自动创建一个新的id

insert into table1 (col1,col2,col3) select col1,col2,col3 from table2;
于 2012-05-03T15:09:35.607 回答
1

根据MSDN 上的文档,IDENTITY 属性将通过SELECT INTO子句传递,但约束不会。这意味着如果您包含源表中的原始 IDENTITY 列,则可以创建一个带有 IDENTITY 列的新表,但新表中的列不会是主键。

明智的做法是在创建表后使用 ALTER TABLE,正如@Kai 所建议的那样。

于 2012-05-03T15:18:45.430 回答