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
これが正しい方法です。
INSERT INTO destinationTable
SELECT * FROM sourceTable
INSERT INTO table1 (col1, col2, col3)
SELECT column1, column2, column3
FROM table2
これを試して:
INSERT INTO MyTable1 (Col1, Col2, Col4)
SELECT Col1, Col2, Col3 FROM MyTable2
新しいテーブルが存在せず、古いテーブルのコピーをすべて作成したい場合は簡単な方法です。その後、SQL Serverで次のように動作します。
SELECT * INTO NewTable FROM OldTable
これを試して:
Insert Into table2
Select * from table1
INSERT INTO DestinationTable(SupplierName, Country)
SELECT SupplierName, Country FROM SourceTable;
同じであることは必須の列名ではありません。
選択した列を条件付きで挿入
INSERT INTO where_to_insert (col_1,col_2) SELECT col1, col2 FROM from_table WHERE condition;
同じ列名を使用して、あるテーブルから別のテーブルにすべてのデータをコピーします。
INSERT INTO where_to_insert
SELECT * FROM from_table WHERE条件。