首页 > 解决方案 > SQL Server 可以自动将随机 int 分配给 IDENTITY 列吗?

问题描述

我有一个大约 50,000 行的表。每天删除数据,并导入大约50,000行的最新数据。这是一个日常过程。

数据需要在输出中按随机顺序排序,因此我们之前在 Access 中执行此操作的方式是将标识设置为“随机”。这显示了一个随机整数,因此当通过此列对数据进行排序时,它会很好地混杂在一起。

如何使用 SQL Server 复制它?我似乎无法弄清楚如何使用种子和增量函数来实现这一点,并且我知道分配一个随机数是好的,直到它拉出一个副本(无论几率多么小)。如果可能的话,我真的很想避免在它的顶部运行另一个程序来“插入”随机数,但如果这是唯一的方法,我会放弃。

标签: sqlsql-servertsql

解决方案


为什么不将其添加到您想要的查询中?

order by newid()

我看不出有理由为这样的事情覆盖身份。

如果您愿意,您可以newid()将“身份”列用作“身份”列的默认值,而不是identity(). 出于排序的目的,这将给出一个“随机”的 id。


推荐阅读