日期:2014-05-16  浏览次数:20498 次

SELECT INTO FROM与INSERT INTO SELECT区别
select *?into?destTbl from srcTbl
insert into destTbl(fld1, fld2) select fld1, 5 from srcTbl

以上两句都是将 srcTbl 的数据插入到 destTbl,但两句又有区别的:

  • 第一句(select into from)要求目标表(destTbl)不存在,因为在插入时会自动创建。
  • 第二句(insert into select from)要求目标表(destTbl)存在,由于目标表已经存在,所以我们除了插入源表(srcTbl)的字段外,还可以插入常量,如例中的:5。
  • 根据以上区别:第二句用法destTbl表与srcTbl表可以为同一张表。

1.INSERT INTO SELECT语句

??????语句形式为:Insert into Table2(field1,field2,...) select value1,value2,... from Table1

?????要求目标表Table2必须存在,由于目标表Table2已经存在,所以我们除了插入源表Table1的字段外,还可以插入常量。示例如下:

SELECT?<wbr>INTO?<wbr>FROM与INSERT?<wbr>INTO?<wbr>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?