目次

別テーブルへのレコードのコピーまたは移動 - SQL Server

別テーブルへレコードをコピーまたは移動させる場合のSQL文を紹介します。
別のデータベースのテーブルにレコードを移動、コピーさせる場合はこちらの記事を参照してください。

書式

insert into テーブル名(列名1,列名2,列名3,…) select 列名1,列名2,列名3,… from テーブル名

補足:レコードの移動の場合
直接レコードを移動するSQL文はないため、レコードをコピー後、元のテーブルのレコードを削除します。 レコード削除のSQL文は「レコードを削除する - DELETE 文によるレコード削除 (SQLの構文)」を参照してください。

例1

次のテーブルを準備します。
Products テーブル
id model name class category price
1C-XM01モーダンチェアホームチェア56000
2X-XD05ラージデスクオフィステーブル87000
3A-DA40ラウンドダイニングチェアホームチェア28000
4O-XX100ナチュラルオフィスオフィスチェア13800
5R-D400ラウンドダイニングテーブルホームテーブル128000

ProductsV テーブル
id(自動採番) model name class category price

上記のテーブルがあり、Productsテーブルのすべてのレコードを ProductsV テーブルに挿入する場合は以下のSQLを用います。
insert into ProductsV(model,name,class,category,price) select model,name,class,category,price from Products

例2

次のテーブルを準備します。
Item テーブル
id name price category
1Penguin500Bird
2Bear1050Mammal
3Duck150Bird
4Camel920Mammal
5Owl185Bird
6Whale880Mammal

ItemTemp テーブル
id(自動採番) name price category
上記のテーブルがあり、Item テーブルのpriceの値が500より大きいレコードを ItemTemp テーブルに挿入する場合は以下のSQLを用います。
insert into ItemTemp(model,name,class,category,price) select model,name,class,category,price from Item where price > 500

実行後のテーブルは以下の状態になります。
ItemTemp テーブル
id name price category
1Bear1050Mammal
2Camel920Mammal
3Whale880Mammal
著者
iPentec.com の代表。ハードウェア、サーバー投資、管理などを担当。
Office 365やデータベースの記事なども担当。
最終更新日: 2024-06-03
作成日: 2023-10-19
iPentec all rights reserverd.