复制表m
次中所有记录的最简单方法是什么?问题是复制必须保持旧订单。即,如果我所有的都是记录
A, B, & C,
重复3次后,我应该
A, B, C, A, B, C, A, B, & C,
而不是其他任何东西,如A,A,A,B,......等。
由于
答案 0 :(得分:1)
如果您想按原始顺序返回行,可以这样做:
select t.*
from table t cross join
(select 1 as n union all select 2 union all select 3) n
order by n.n, t.ordercol;
order by
保证订购。它取决于订购的原始列。
顺便说一句,如果您使用union all
或递归CTE来生成数据(这些是合理的替代方案),这是相同的。除非您使用order by
。
答案 1 :(得分:0)
希望这会给你一个想法: -
DECLARE @Start int = 1
DECLARE @Stop int = 5
DECLARE @tbl table
(
oldValue varchar(20)
)
INSERT INTO @tbl
SELECT name FROM TABLE_01
WHILE @start<=@stop
BEGIN
INSERT INTO table_01
SELECT oldValue FROM @tableVariable
SET @start = @start + 1
END
由于您说重复所有记录,所以首先在表变量中插入所有记录。然后使用while循环将所有记录插入同一个表中n次。