動作確認する前のバックアップなどで「このテーブルのコピー(複製)を作りたい」など
SQL Server では SELECT INTO で簡単に複製(コピー)を作成できます。
以下、実際に SELECT INTO ステートメントを使った使用例を記します。
SELECT @@VERSION Microsoft SQL Server 2019 (RTM-GDR) <snip>
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 をつかって差分確認を行いました。
複製されているのが確認できます。