SQL Serverでテーブルをコピー(複製)する SELECT INTO ステートメント †動作確認する前のバックアップなどで「このテーブルのコピー(複製)を作りたい」など 動作確認環境 †
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 を確認しました。 テーブルを複製する †以下の SELECT * INTO で SRC_TBL を DEST_TBL というテーブル名で複製を作成します。 SELECT * INTO DEST_TBL FROM SRC_TBL テーブルの複製確認 †以下、SELECTでテーブル内レコードの確認と EXCEPT をつかって差分確認を行いました。 以上、SQL Server で SELECT * INTO 構文を使ってテーブルの複製を作成する手順でした。 |