2

既に作成されたテーブルを取得し、新しい ID (主キー) を持つ新しいテーブルにデータの一部を挿入する SQL クエリの構文を提供できる人はいますか? これまでのところ、私はこれを試しました

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

以下のようにするだけで、レコードの挿入中に新しいIDが自動的に作成されます

insert into table1 (col1,col2,col3) select col1,col2,col3 from table2;
于 2012-05-03T15:09:35.607 に答える
2
INSERT INTO new_table
(Column1, Column2 . . . )

SELECT Column1, Column2 FROM old_table

ID 列 (自動生成された番号を持つ主キー) を挿入リストに含めないでください。

于 2012-05-03T15:06:03.773 に答える
1

MSDNのドキュメントによると、IDENTITY プロパティはSELECT INTO句を介して転送されますが、制約は転送されません。つまり、ソース テーブルの元の IDENTITY 列を含めると、IDENTITY 列を含む新しいテーブルを作成できますが、新しいテーブルの列は主キーにはなりません。

@Kaiが示唆しているように、これを行うための適切な方法は、テーブルの作成後に ALTER TABLE を使用することです。

于 2012-05-03T15:18:45.430 に答える