这是一种快速且相当简单的方法:
我从您的表的 模型 开始,其中包含一些现有数据:
DECLARE @YourRealTable TABLE(ID INT IDENTITY,SomeValue VARCHAR(100));
INSERT INTO @YourRealTable VALUES
('One existing value 1'),('One existing value 2')
,('One existing value 3'),('One existing value 4');
--以下 CTE 将在微秒内创建多达 10^9 个运行数字...
--让我们插入 ~4000(4 个现有乘以 1000)
DECLARE @start INT=1;
DECLARE @end INT =1000;
WITH x AS(SELECT 1 AS N FROM(VALUES(1),(1),(1),(1),(1),(1),(1),(1),(1),(1)) AS tbl(N))--10^1
,N3 AS (SELECT 1 AS N FROM x CROSS JOIN x AS N2 CROSS JOIN x N3) --10^3
,Tally AS(SELECT TOP(@end-@start +1) ROW_NUMBER() OVER(ORDER BY(SELECT NULL)) + @start -1 AS Nr FROM N3
CROSS JOIN N3 N6 CROSS JOIN N3 AS N9)
INSERT INTO @YourRealTable(SomeValue)
SELECT SomeValue
FROM @YourRealTable
CROSS APPLY Tally;
--现在对大约 4000 条相似记录感到满意:
SELECT * FROM @YourRealTable;