データベース間のレコードのコピーまたは移動 - SQL Server

データベース間でテーブルのレコードの移動orコピーをする場合には以下のSQLを実行します。

書式

insert into [コピー先データベース名].[dbo].テーブル名(列名1,列名2,列名3,…)
  select 列名1,列名2,列名3,… from [コピー元データベース名].[dbo].テーブル名

例1

OPERATION データベース products テーブル

idnamecategoryprice
1PenguinBird450
2WhaleMammal5000
3BearMammal680
4OstrichBird550
5HawkBird300
6CamelMammal700

TEMP データベース working テーブル

id(自動採番)codevalue


上記のテーブルがあり、productsテーブルの"category"の値が"Mammal"であるレコードを working テーブルに挿入する場合は以下のSQLを用います。
productsテーブルのname列の値をworkingテーブルのcode列に、productsテーブルのprice列の値ををworkingテーブルのvalue列にに挿入します。
insert into [TEMP].[dbo].working (code, value) 
  select name, price from [OPERATION].[dbo].products where category='Mammal'

例2

先のテーブルを用いた場合で、すべてのレコードをworkingテーブルに挿入する場合は以下のSQLを用います。
insert into [TEMP].[dbo].working (code, value) select name, price from [OPERATION].[dbo].products 

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

このページのキーワード
  • SQL Server データベース間 レコード コピー
  • SQL Server データベース間 レコード 移動
著者
iPentec.com の代表。ハードウェア、サーバー投資、管理などを担当。
Office 365やデータベースの記事なども担当。
最終更新日: 2023-03-26
作成日: 2009-02-26
iPentec all rights reserverd.