SQL Serverで同じスキーマを持つテーブルから別のテーブルにデータをコピー/追加する方法は?
編集:
クエリがあるとしましょう
select *
into table1
from table2
where 1=1
table1
と同じスキーマとデータで作成しますtable2
。
データ全体を既存のテーブルにのみコピーするためのこのような短いクエリはありますか?
SQL Serverで同じスキーマを持つテーブルから別のテーブルにデータをコピー/追加する方法は?
編集:
クエリがあるとしましょう
select *
into table1
from table2
where 1=1
table1
と同じスキーマとデータで作成しますtable2
。
データ全体を既存のテーブルにのみコピーするためのこのような短いクエリはありますか?
両方のテーブルが本当に同じスキーマである場合:
INSERT INTO newTable
SELECT * FROM oldTable
それ以外の場合は、列名を指定する必要があります (すべての列に値を指定し、のスキーマnewTable
と同じ順序で列を選択する場合、 の列リストはオプションです)。newTable
INSERT INTO newTable (col1, col2, col3)
SELECT column1, column2, column3
FROM oldTable
新しいテーブルが存在せず、すべてを含む古いテーブルのコピーを作成したい場合の簡単な方法は、SQL Serverで次のように機能します。
SELECT * INTO NewTable FROM OldTable
これはそれを行う適切な方法です:
INSERT INTO destinationTable
SELECT * FROM sourceTable
これを試して:
INSERT INTO MyTable1 (Col1, Col2, Col4)
SELECT Col1, Col2, Col3 FROM MyTable2
これを試して:
Insert Into table2
Select * from table1
INSERT INTO DestinationTable(SupplierName, Country)
SELECT SupplierName, Country FROM SourceTable;
必須の列名は同じではありません。