代码之家  ›  专栏  ›  技术社区  ›  Julius A

SQL Server全局唯一标识符

  •  3
  • Julius A  · 技术社区  · 17 年前

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

    4 回复  |  直到 17 年前
        1
  •  4
  •   David Schmitt    17 年前

    原因之一是 :当存在多个不协调的作者时,根据定义,他们没有沟通的渠道来创建唯一的 int

        2
  •  3
  •   BlackWasp    17 年前

    除了其他答案中提到的复制元素之外。。。

    当您需要创建唯一值但无法访问主数据库或不想先写出数据时。对于同步的系统尤其如此。例如,一种销售人员工具,允许未连接的销售人员创建数据并在以后将其写入数据库。

        3
  •  0
  •   Galwegian    17 年前

    guid通常用于需要复制的情况,以避免来自不同位置的主键冲突带来的复杂性。

    如果我在一个不使用复制的系统上工作,我通常会避免使用guid的复杂性和开销。

        4
  •  0
  •   Craig    17 年前

    有(至少)两种情况下Guid是非常有用的。

    1. 使用复制或任何类型的多站点设置(其中数据库将被合并),Guid将使其更加容易。在这种情况下,也可以使用Int键,但Guid更容易,问题也更少。
    2. 在插入之前在客户端生成密钥,而不需要往返到数据库,这是非常有用的。
    推荐文章