从NewID切换到Sequential NewID以获取默认PK值

时间:2011-07-18 22:12:14

标签: sql-server-2008

我有一个包含几百万行的生产数据库,全部使用随机生成的GUID,默认值为NewID()作为主键。

我正在考虑使用Sequential NewIDs。

在按顺序生成GUID时,SQL Server如何知道它在使用NEWID()随机生成时尚未创建该GUID?

1 个答案:

答案 0 :(得分:2)

听起来您正在考虑使用NEWSEQUENTIALID()作为新的默认值。

不要担心重复的情况。该列的PK约束可确保不会发生冲突。无论如何,您无法保证新的顺序GUID“更高”:

  

创建一个GUID,该GUID大于Windows自启动以来在指定计算机上以前由此函数生成的任何GUID。重新启动Windows后, GUID可以从较低范围重新开始,但仍然是全局唯一的。

可能会在Microsoft Connect : NEWSEQUENTIALID() is Not Sequential

帮助您的一些相关信息