检查我系统上某些软件使用的相当关键的数据库,我发现其中一个表在列上有一个主键Id,其中Id使用checksum(newid()). 这让我感到不安;在newids的保证是独一无二的,但通过将校验和(一个32位整数,大概是出于性能的原因?),你有一些机会,你在表中得到的碰撞(用1M行,我把那大约 1:4000 的机会,对我来说太多了)。
Id
checksum(newid())
newid
所以:
sql-server-2008 sql-server primary-key unique-constraint
primary-key ×1
sql-server ×1
sql-server-2008 ×1
unique-constraint ×1