誰かが既に作成されたテーブルを使用し、新しいID(主キー)を持つ新しいテーブルにデータの一部を挿入するSQLクエリの構文を提供できますか?今まで私はこれを試しましたSqlクエリ新しいテーブルを作成
SELECT ((ID INT IDENTITY(1,1) PRIMARY KEY), column1, column2, column3)
INTO table_name
FROM table_name
私は構文エラーを思いついています。
誰かが既に作成されたテーブルを使用し、新しいID(主キー)を持つ新しいテーブルにデータの一部を挿入するSQLクエリの構文を提供できますか?今まで私はこれを試しましたSqlクエリ新しいテーブルを作成
SELECT ((ID INT IDENTITY(1,1) PRIMARY KEY), column1, column2, column3)
INTO table_name
FROM table_name
私は構文エラーを思いついています。
INSERT INTO new_table
(Column1, Column2 . . .)
SELECT Column1, Column2 FROM old_table
挿入リストにID列(自動生成番号の主キー)を含めないでください。
INSERT INTO newtable (column1, column2, column3)
SELECT (column1, column2, column3)
FROM table_name
documentation on MSDNによると、この
SELECT column1, column2, column3
INTO table_name_new
FROM table_name_old
使用、IDENTITYプロパティをします挿入しながらちょうど下のようにそれを作る、Aaの新しいIDが自動的に作成されますSELECT INTO
句で転送しますが、制約は適用されません。つまり、ソーステーブルの元のIDENTITYカラムを含める場合は、IDENTITYカラムを持つ新しいテーブルを作成できますが、新しいテーブルのカラムはプライマリキーになりません。
@Kaiが示唆しているように、テーブルを作成した後にALTER TABLEを使用するのが正気な方法です。
などの記録
insert into table1 (col1,col2,col3) select col1,col2,col3 from table2;
ちょうど理解のために、なぜあなたは「from-table」をコピーし、後で「alter-table」ステートメントで主キーを変更しないのですか? – Kai
テーブル行に列宣言を挿入することはできません。そして、あなたの例はtable_nameからtable_nameを選択しています。あなたの例を更新してINTOのtarget_table FROM source_tableを意味することを明確にしたいかもしれません。 – Cylindric