SQL我想在插入时复制记录

时间:2011-05-04 13:14:11

标签: sql insert duplicates while-loop record

不使用while或for循环,是否有办法在单个插入上插入记录两次或更多次? 感谢

INSERT INTO TABLE2 ((VALUE,VALUE)
SELECT VALUE,VALUE FROM TABLE1 )) *  2

3 个答案:

答案 0 :(得分:2)

您需要CROSS JOIN到2行的表格上。以下内容适用于SQL Server。

INSERT INTO TABLE2 ((VALUE,VALUE)

SELECT VALUE,VALUE 
FROM TABLE1, (SELECT 1 UNION ALL SELECT 2) T(C)

如果您有辅助数字表,您也可以

SELECT VALUE,VALUE 
FROM TABLE1 JOIN Numbers ON N <=2 

答案 1 :(得分:1)

- 首先创建一个包含2条记录的虚拟表

INSERT INTO TABLE2 ((VALUE,VALUE)
SELECT VALUE,VALUE FROM TABLE1, dummytable ))

答案 2 :(得分:0)

这不是一种优雅的方式,但可以很容易地工作。 如果您有一个具有足够多记录的表,则可以使用TOP子句进行交叉连接

INSERT INTO TABLE2 
SELECT VALUE,VALUE FROM TABLE1 
cross join (select top 2 TABLE_DUMMY) as DUMMY

这适用于MQ SqlServer,要让它在其他DBMS中工作,您应该使用DBMS所需的关键字更改TOP