SQL Server如何使用NEWID()创建uniqueidentifier

时间:2012-09-23 06:53:31

标签: sql-server

我在五个不同的位置有一个user_info表。现在我需要将所有行集成到一个中心user_info表中。为此,我需要源表中每行的唯一ID。因为当所有行都进入中央表时,每个用户必须具有唯一的ID。

现在我的问题是:

  1. 如果我对每个源表使用uniqueidentifier NEWID(),那么它对于全局和&生命时间还是有机会重复?

  2. SQL Server如何创建NEWID()?我需要知道密钥生成结构。

1 个答案:

答案 0 :(得分:7)

是的,机器之间不存在重复的可能性。

NEWID()基于伪随机号码(来自时钟)和主NIC的MAC地址的组合。

但是,在表格中插入像这样的随机数作为聚类键对于性能来说太糟糕了。您应该考虑使用NEWSEQUENTIALID()或COMB类型函数来生成仍然提供NEWID()的冲突避免优势的GUID,同时仍保持可接受的INSERT性能。