全局唯一标识符

尽管 IDENTITY 属性在一个表内自动进行行编号,但具有各自标识符列的各个表可以生成相同的值。这是因为 IDENTITY 属性仅在使用它的表上保证是唯一的。如果应用程序必须生成在整个数据库或世界各地所有网络计算机的所有数据库中均为唯一的标识符列,请使用 ROWGUIDCOL 属性、uniqueidentifier 数据类型和 NEWID 函数。

使用 ROWGUIDCOL 属性定义 GUID 列时,请注意下列几点:

  • 一个表只能有一个 ROWGUIDCOL 列,且必须通过使用 uniqueidentifier 数据类型定义该列。
     
  • 数据库引擎 不会自动为该列生成值。若要插入全局唯一值,请为该列创建 DEFAULT 定义来使用 NEWID 函数生成全局唯一值。
     
  • 在设置 ROWGUIDCOL 属性后,通过使用 $ROWGUID 关键字可以在选择列表中引用该列。这与通过使用 $IDENTITY 关键字可以引用 IDENTITY 列的方法类似。
     
  • OBJECTPROPERTY 函数可用于确定一个表是否具有 ROWGUIDCOL 列,COLUMNPROPERTY 函数可用于确定 ROWGUIDCOL 列的名称。
     
  • 由于 ROWGUIDCOL 属性不强制唯一性,因此应使用 UNIQUE 约束来保证插入到 ROWGUIDCOL 列中的值是唯一的。
     

在创建表时创建新的标识符列