复制表m
时间中所有记录的最简单方法是什么?问题是重复必须保持旧的秩序。也就是说,如果我只有记录
A, B, & C,
复制3次后,我应该
A, B, C, A, B, C, A, B, & C,
而不是其他任何东西,比如A,B,…,等等。
谢谢
发布于 2014-02-26 08:31:23
如果您想以原始顺序返回行,可以这样做:
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
,否则在结果集中不能保证排序。
发布于 2014-02-26 08:42:24
希望这能给你一个主意:-
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
因为您说了“复制所有records..so”,所以首先在表变量中插入所有记录。然后使用while循环将所有记录插入相同的表n次。
https://stackoverflow.com/questions/22047347
复制相似问题