SQL Server全局唯一标识符

4

何时或为什么需要使用全局唯一标识符(GUID)而不是传统的标识列?请帮助我理解。

4个回答

4

一个原因是复制和可扩展性:当存在多个不协调的写入者时,它们 - 根据定义 - 没有通信渠道来创建主键的唯一ints。GUID不需要通信即可保证唯一性。


3
除了其他答案提到的复制元素之外...
当您需要创建唯一值但没有访问主数据库或不想首先编写数据时,可以使用此方法。这在同步系统中特别适用,例如允许未连接的销售人员创建数据并在以后将其写入数据库的销售力量工具。
对于标识,必须先将行写入数据库,然后才能确定唯一键是什么。使用GUID,您可以在数据库外部的代码中生成GUID,而无需数据库完全可用。

0

GUID(全局唯一标识符)通常用于需要复制的情况,以避免来自不同位置的主键冲突的复杂性。

如果我正在处理的系统不使用复制,我通常会避免使用GUID带来的复杂性和开销。


0

至少有两种情况,其中Guid非常有用。

  1. 在数据库合并等复制或任何多站点设置中,使用Guid会使它更容易。在这种情况下,也可以使用整数键,但是Guid更容易且会带来更少的问题。
  2. 在插入之前客户端生成密钥,无需往返于数据库,这非常有用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接