MSSQL为每个ID插入10个随机行

时间:2014-03-09 02:59:29

标签: sql sql-server database

我有一个包含ID的MSSQL表,比如 TBL1

我还有另一个表可容纳大约1M的数据;名为 TBL2

我想要做的是,我想将 TBL2 中的10个随机行插入到 TBL1 <中的每个ID的新表 TBL3 中/强>点。


目前我使用CURSOR循环遍历TBL1但是它需要永远,特别是当表格大小非常大时。

关于如何做的任何其他建议?

感谢。

编辑: TBL1和TBL2没有任何链接,没有ID等。 TBL2只有纯数据。

1 个答案:

答案 0 :(得分:0)

您可以使用以下查询获取两个不相关的表之间的随机连接。由于我使用内连接,它会将行数限制为两个表中的最小值。行计数(这似乎是你想要的)。然后你可以运行10次(我使用GO 10)。

insert into TBL3
select t1.col1, t2.col2
from
    (select row_number() over (order by NEWID()) rownum, col1 from TBL1) t1
inner join
    (select row_number() over (order by NEWID()) rownum, col2 from TBL2) t2
on t1.rownum = t2.rownum

go 10