SELECT INTOとINSERT INTO SELECTの二種類の表のコピーの語句は簡単に紹介します。
InsertはT-sqlでよく使われている言葉で、Insert INTO table(field 1、field 2、…)values(value 1、value 2、…)という形のアプリケーション開発には欠かせません。しかし、開発、テストの過程で、テーブルコピーが必要な場合がよくあります。テーブル1のデータの一部フィールドをテーブル2にコピーしたり、テーブル1全体をテーブル2にコピーしたりします。この時はSELECT INTOとINSERT INTO SELECT表を使って文をコピーします。1.INSERT INTO SELECT文の形式は:Insert into Table 2(field 1、field 2、...)select value 1、value 2、・・from Table 1はターゲットテーブルTable 2が存在する必要があります。ターゲットテーブルTable 2は既に存在しているので、ソーステーブルTable 1のフィールドに挿入する以外に、定数を挿入することができます。例としては、
INSERT INTO SELECT
--1.
create TABLE Table1
(
a varchar(10),
b varchar(10),
c varchar(10),
CONSTRAINT [PK_Table1] PRIMARY KEY CLUSTERED
(
a ASC
)
) ON [PRIMARY]
create TABLE Table2
(
a varchar(10),
c varchar(10),
d int,
CONSTRAINT [PK_Table2] PRIMARY KEY CLUSTERED
(
a ASC
)
) ON [PRIMARY]
GO
--2.
Insert into Table1 values(' ','asds','90')
Insert into Table1 values(' ','asds','100')
Insert into Table1 values(' ','asds','80')
Insert into Table1 values(' ','asds',null)
GO
select * from Table2
--3.INSERT INTO SELECT
Insert into Table2(a, c, d) select a,c,5 from Table1
GO
--4.
select * from Table2
GO
--5.
drop TABLE Table1
drop TABLE Table2
.SELECT INTO FROM文の形式は、SELECT vale 1、value 2 into Table 2 from Table 1は、ターゲットテーブルTable 2が存在しないことを要求します。挿入時にテーブルTable 2を自動的に作成し、Table 1に指定されたフィールドデータをTable 2にコピーします。例としては、SELECT INTO FROM作成テーブルを作成し、テーブルデータをコピーする
--1.
create TABLE Table1
(
a varchar(10),
b varchar(10),
c varchar(10),
CONSTRAINT [PK_Table1] PRIMARY KEY CLUSTERED
(
a ASC
)
) ON [PRIMARY]
GO
--2.
Insert into Table1 values(' ','asds','90')
Insert into Table1 values(' ','asds','100')
Insert into Table1 values(' ','asds','80')
Insert into Table1 values(' ','asds',null)
GO
--3.SELECT INTO FROM Table2
select a,c INTO Table2 from Table1
GO
--4.
select * from Table2
GO
--5.
drop TABLE Table1
drop TABLE Table2
が挙げられます。