このエントリーをはてなブックマークに追加


SQL Serverでテーブルをコピー(複製)する SELECT INTO ステートメント

動作確認する前のバックアップなどで「このテーブルのコピー(複製)を作りたい」など
SQL Server では SELECT INTO で簡単に複製(コピー)を作成できます。
以下、実際に SELECT INTO ステートメントを使った使用例を記します。

動作確認環境

  • SQL Server
    SELECT @@VERSION
    Microsoft SQL Server 2019 (RTM-GDR) <snip>
  • SQL Server Management Studio v18.12.1

SELECT INTO で複製をつくる構文

SELECT * INTO ステートメントでテーブルの複製を作成するステートメントは以下の通りです。

SELECT * INTO [複製で作成するテーブル名] FROM [複製したいテーブル名]

以下、実際に複製元のテーブルを作り、データを投入し SELECT * INTO ステートメントを使って複製を作ってみます。

複製元テーブルの作成

以下、DDLでテーブルを作成しました。

CREATE TABLE SRC_TBL (
  PRODUCT_CODE VARCHAR(10) PRIMARY KEY,
  PRODUCT_NAME VARCHAR(100) NOT NULL,
  PRODUCT_PRICE FLOAT NOT NULL,
  CREATE_DATE DATETIME NOT NULL,
  UPDATE_DATE DATETIME
)

データの投入

以下のINSERT文で SRC_TBLにレコードを投入しました。

INSERT INTO SRC_TBL VALUES 
('msw01','Windows10',14350,CURRENT_TIMESTAMP,NULL),
('msw02','Windows12',15700,CURRENT_TIMESTAMP,NULL),
('lnx01','Debian',0,CURRENT_TIMESTAMP,NULL),
('lnx02','Arch Linux',0,CURRENT_TIMESTAMP,NULL),
('bsd01','FreeBSD',0,CURRENT_TIMESTAMP,NULL),
('bsd02','OpenBSD',0,CURRENT_TIMESTAMP,NULL)

投入データ確認

上記 INSERT SQL 実行後、複製元である SRC_TBL を確認しました。

01.png

テーブルを複製する

以下の SELECT * INTO で SRC_TBL を DEST_TBL というテーブル名で複製を作成します。

SELECT * INTO DEST_TBL FROM SRC_TBL

テーブルの複製確認

以下、SELECTでテーブル内レコードの確認と EXCEPT をつかって差分確認を行いました。
複製されているのが確認できます。

02.png
 

以上、SQL Server で SELECT * INTO 構文を使ってテーブルの複製を作成する手順でした。


添付ファイル: file02.png 75件 [詳細] file01.png 73件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2023-10-20 (金) 20:17:48