通过SQL随机分发

时间:2013-12-25 13:30:35

标签: sql sql-server-2008

我想通过SQL向用户分发116条记录,但是随机执行此操作的最佳方法是什么,例如,如果它计算出每个人都获得5行,我如何随机插入带有日期时间戳的记录小时?

因此对于用户1,我每隔10分钟插入一次,但对于用户来说,我想要一些不同的东西,也许每隔5分钟?

我在想是否随机获得5-10之间的数字,然后将其用作我的间隔?然后填充一个名为[USED]的临时表,然后执行NOT EXISTS查询并确保我的随机间隔不存在。

这个想法是让它看起来好像每个人都创建了记录,所以我不希望它看起来像批量插入。它需要看起来像人类已经做到了这一点。

1 个答案:

答案 0 :(得分:1)

这听起来不是很“随机”,因为每个用户都有5条记录看起来很假。我认为这是一种更好的方法:

    INSERT INTO your_table (User_ID,Date_Col) 
VALUES ((SELECT TOP 1 ID FROM your_user_table ORDER BY NEWID()),
DATEADD(second, rand()*36000, DATEADD(day, rand()*120, getdate()))