insert into select时自己加上编号

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了insert into select时自己加上编号相关的知识,希望对你有一定的参考价值。

问题:把一个表的几列按条件插入到一个临时表中,临时表中有序号一栏,现需确保每次用insert into select时都能自动从1开始给加上序号,问语句如何写? insert into a(序号,产品规格,数量) select (???),产品规格,sum(数量) from b group by b.产品规格 另,我需要的是每次都从1开始,用自动增加的字段,每次都是累加上去的! 比如第一次插入了10条序号就是1-10 第2次又插入了5条,序号就是1-5而不是11-15是这个意思 还有个,是在ACCESS VBA里!

参考技术A 把语句改一为:
insert
into
del_main(产品机型,产品名称,认证类型,证书申请人,产品证书,产品证书有效期,认证报告,ccc模压有效期,认证报告变更编号,备注,附件)
select
main.产品机型,main.产品名称,main.认证类型,main.证书申请人,main.产品证书,main.产品证书有效期,main.认证报告,main.ccc模压有效期,main.认证报告变更编号,main.备注,main.附件
from
main
where
main.产品证书='产品证书111'
你自己试试。

调用 OPENROWSET 时 INSERT INTO 和 SELECT INTO 的区别

【中文标题】调用 OPENROWSET 时 INSERT INTO 和 SELECT INTO 的区别【英文标题】:Difference between INSERT INTO and SELECT INTO when calling OPENROWSET 【发布时间】:2016-12-21 16:57:41 【问题描述】:
select 1 as X,d.* into [TravelData] from OPENROWSET('SQLNCLI','Server=<redacted>',
     'exec [OtherDB].[GetTravelData]  1, ''28-Nov-2016 16:00'', ''28-Nov-2016 19:00''') as d

我有这种方法可以将远程数据库啜饮到本地表中。此语法似乎有效,但出现错误:

数据库中已经有一个名为“TravelData”的对象。

有道理,SELECT INTO 应该来创建表。但是我想我只是将SELECT 更改为INSERT 然后我得到语法错误。将这些数据放入结构与查询输出匹配的现有数据库表中的正确语法应该是什么?

【问题讨论】:

我认为您的意思是“SELECT INTO 应该创建 ”,而不是 DB。您可以在此处阅读SELECT INTOINSERT INTO 的比较:INSERT INTO vs SELECT INTO。 Prdp下面的答案似乎完美地处理了你的具体情况。 【参考方案1】:

它与使用 OPENROWSET 无关。

INSERT INTO ... 要求表已经存在。

SELECT ... INTO 要求表 存在。该表将由语句使用 SELECT 中定义的列创建。

【讨论】:

【参考方案2】:

这里是INSERT INTO SELECT 语法

INSERT INTO [TravelData]
            (X,
             col1,
             col2,
             ...)
SELECT 1 AS X,
       d.col1,
       d.col2,
       .....
FROM   OPENROWSET('SQLNCLI',
                  'Server=<redacted>',
                  'exec [OtherDB].[GetTravelData]  1, ''28-Nov-2016 16:00'', ''28-Nov-2016 19:00''') AS d 

注意:select 列表中添加column 列表,而不是*。同样在Insert 中提及列列表

【讨论】:

以上是关于insert into select时自己加上编号的主要内容,如果未能解决你的问题,请参考以下文章

易语言 insert into

INSERT INTO SELECT 很慢,但是单独运行时 INSERT 或 SELECT 很快

调用 OPENROWSET 时 INSERT INTO 和 SELECT INTO 的区别

db2数据库,insert into a表 select * from b表 能不能设置每1000

insert into的用法

带有 SELECT 和 INNER JOIN 的 SQL INSERT INTO