INSERT INTO SELECT文とSELECT INTO FROM文のいくつかの違い

2408 ワード

1.INSERT INTO SELECT文形式:Insert into Table 2(field 1,field 2,...)select value1,value2,... from Table1
ターゲットテーブル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

2.SELECT INTO FROM文
文形式は:SELECT vale 1,value 2 into Table 2 from Table 1
挿入時にテーブルTable 2が自動的に作成され、Table 1で指定したフィールドデータがTable 2にコピーされるため、ターゲットテーブル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