テーブルをコピーする - SQL

SQLでテーブルをコピーするコードを紹介します。

概要

SQLでまとめてコピーするコマンドは無いため、コピー元のテーブルのすべてのレコードをselectにより取得し、コピー先のテーブルにinsertする方法ですべてのレコードをコピーします。

手順

コピー先テーブルの作成

コピー先のテーブルを作成します。Create table の SQLを実行しテーブルを作成します。管理ツール(SQL Server Management Studioなど)があれば、元のテーブルからテーブルを作成するSQL文を作成できますので、SQL文を作成しテーブル名を変更してコピー先のテーブルを作成できます。

データのコピー

下記のいずれかのSQL文を実行します。
insert into コピー先テーブル名 from コピー元テーブル名;
insert into コピー先テーブル名 as select * from コピー元テーブル名;
insert into コピー先テーブル名 select * from コピー元テーブル名;
insert into コピー先テーブル名 (列名1, 列名2, ....., 列名n)
 select 列名1, 列名2, ....., 列名n from コピー元テーブル名;

補足

SQL Serverで自動採番が有効になっている場合は、SET IDENTITY_INSERT を ON にしてIDENTITY 列に明示的に値を設定してレコードを挿入します。詳細はこちらの記事を参照してください。
SET IDENTITY_INSERT コピー先テーブル名 ON
Go

insert into コピー先テーブル名 (列名1, 列名2, ....., 列名n) 
 select 列名1, 列名2, ....., 列名n from コピー元テーブル名;

著者
iPentec.com の代表。ハードウェア、サーバー投資、管理などを担当。
Office 365やデータベースの記事なども担当。
最終更新日: 2017-10-07
作成日: 2017-01-16
iPentec all rights reserverd.