web-dev-qa-db-ja.com

別のテーブルにデータをコピーする

SQL Serverで同じスキーマを使用して、あるテーブルから別のテーブルにデータをコピー/追加する方法

編集:

私は質問があると言うつもりです

select * 
into table1 
from table2 
where 1=1 

table1と同じスキーマとデータでtable2を作成します。

データ全体を既存のテーブルにのみコピーするという、このような短いクエリはありますか。

122
Rajaram Shelar

両方のテーブルが本当に同じスキーマであるならば:

INSERT INTO newTable
SELECT * FROM oldTable

それ以外の場合は、列名を指定する必要があります(すべての列に値を指定し、newTableのスキーマと同じ順序で列を選択する場合は、newTableの列リストはオプションです)。

INSERT INTO newTable (col1, col2, col3)
SELECT column1, column2, column3
FROM oldTable
260
lc.

これが正しい方法です。

INSERT INTO destinationTable
SELECT * FROM sourceTable
13
Zzz
INSERT INTO table1 (col1, col2, col3)
SELECT column1, column2, column3
FROM table2                                        
9
user3566871

これを試して:

INSERT INTO MyTable1 (Col1, Col2, Col4)
   SELECT Col1, Col2, Col3 FROM MyTable2
8
Abe Miessler

新しいテーブルが存在せず、古いテーブルのコピーをすべて作成したい場合は簡単な方法です。その後、SQL Serverで次のように動作します。

SELECT * INTO NewTable FROM OldTable
5
Satish Patel

これを試して:

Insert Into table2
Select * from table1
5
INSERT INTO DestinationTable(SupplierName, Country)
SELECT SupplierName, Country FROM SourceTable;

同じであることは必須の列名ではありません。

3
S.Adikaram

選択した列を条件付きで挿入

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条件。

2
Nimmi Verma