我在五个不同的位置有一个user_info
表。现在我需要将所有行集成到一个中心user_info
表中。为此,我需要源表中每行的唯一ID。因为当所有行都进入中央表时,每个用户必须具有唯一的ID。
现在我的问题是:
如果我对每个源表使用uniqueidentifier
NEWID()
,那么它对于全局和&生命时间还是有机会重复?
SQL Server如何创建NEWID()
?我需要知道密钥生成结构。
答案 0 :(得分:7)
是的,机器之间不存在重复的可能性。
NEWID()
基于伪随机号码(来自时钟)和主NIC的MAC地址的组合。
但是,在表格中插入像这样的随机数作为聚类键对于性能来说太糟糕了。您应该考虑使用NEWSEQUENTIALID()
或COMB类型函数来生成仍然提供NEWID()
的冲突避免优势的GUID,同时仍保持可接受的INSERT
性能。