2012-05-03 12 views
2

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

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

私は構文エラーを思いついています。

+0

ちょうど理解のために、なぜあなたは「from-table」をコピーし、後で「alter-table」ステートメントで主キーを変更しないのですか? – Kai

+0

テーブル行に列宣言を挿入することはできません。そして、あなたの例はtable_nameからtable_nameを選択しています。あなたの例を更新してINTOのtarget_table FROM source_tableを意味することを明確にしたいかもしれません。 – Cylindric

答えて

2
INSERT INTO new_table 
(Column1, Column2 . . .) 

SELECT Column1, Column2 FROM old_table 

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

3
INSERT INTO newtable (column1, column2, column3) 
SELECT (column1, column2, column3) 
FROM table_name 
4
SELECT column1, column2, column3 
INTO table_name_new 
FROM table_name_old 

使用、IDENTITYプロパティをします挿入しながらちょうど下のようにそれを作る、Aaの新しいIDが自動的に作成されますSELECT INTO句で転送しますが、制約は適用されません。つまり、ソーステーブルの元のIDENTITYカラムを含める場合は、IDENTITYカラムを持つ新しいテーブルを作成できますが、新しいテーブルのカラムはプライマリキーになりません。

@Kaiが示唆しているように、テーブルを作成した後にALTER TABLEを使用するのが正気な方法です。

1

などの記録

insert into table1 (col1,col2,col3) select col1,col2,col3 from table2; 
関連する問題