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