我有一个包含 100 行的表,其中数据为双倍
a1 a2 a3...
---------
1 2 3
23 55 4
2 3 7
我计划使用UNION ALL
使该表更大
a1 a2 a3...
---------
1 2 3
23 55 4
2 3 7
1 2 3
23 55 4
2 3 7
1 2 3
23 55 4
2 3 7
这是出于测试目的,那么您有什么建议,最有效的方法是什么?
最佳答案
这将以指数方式增加表的大小...首先它会插入 x 条记录,然后是 2x,然后是 4x,然后是 8x...您可以添加 distinct
或top n
如果您只想每次添加相同数量的记录,等等。
DECLARE @count int
DECLARE @max int
SET @count int = 1
SET @max = 10
WHILE @count < @max
BEGIN
INSERT INTO myTable (a1, a2, a3)
SELECT a1, a2, a3 FROM myTable
SET @count = @count + 1
END
顺便说一句 - 不确定您要测试什么,但您可能会在数据集中添加除整数之外的其他内容 - 例如 1.01、.99、55.7、60 等。
编辑
根据您的评论 - 如果您真的想要使用union all
然后...
INSERT INTO myTABLE (a1, a2, a3)
SELECT a1, a2, a3 FROM
(
SELECT a1, a2, a3 FROM myTable
UNION ALL
SELECT a1, a2, a3 FROM myTable
UNION ALL
SELECT a1, a2, a3 FROM myTable
...
) a
关于sql-server-2008 - 如何让SQL表变大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7288121/