查看内容

uniqueidentifier数据类型详解

  • 2020-02-25 00:50
  • 数据库知识
  • Views

uniqueidentifier数据类型可存储16字节的二进制值,其作用与全局唯一标记符一样。GUID是唯一的二进制数:世界上的任何两台计算机都不会生成重复的GUID值。

在SQL中 ROWGUIDCOL表示新列是行的全局唯一标识列。对于每个表只能指派一个uniqueidentifier 列作为ROWGUIDCO列。ROWGUIDCOL属性只能指派给uniqueidentifier列

uniqueidentifier数据类型的赋值方法:

1.使用NewID()函数来实现

2.直接将字符串的常量转化为xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

例如:6F9619FF-8B86-D011-B42D-00C04FC964FF

3.直接赋予32位的十六位数据

澳门太阳集团2007网站 ,例如:0xffffffff00000000ffffffff00000000

其它

在SQL Server 2005中有一个数据类型uniqueidentifier,这个数据类型就是用于支持GUID(Global Unique Identifier)。这个类型的值是一个长度为32的定长字符串,比如00000002-3378-a87f-92pj-2t68i97o34ms。GUID可以保证该ID的全局唯一性,方便数据库整合,以免因为数据互相Copy以及转化过程中因为ID相同引起不必要的冲突。在C#中有Guid类,方便我们生成和操作GUID。比如Guid.NewGuid.ToString()就可以得到一个新的GUID字符串。其实,GUID本质上可以认为是时间戳的MD5 Hash。在Lotus中,每个Document都有一个全局的唯一标识称作UNID(unique identifier)。这个UNID和上述GUID有着相同的机制。笔者在最近的项目中就完成了Lotus文档数据库向SQL Server 关系数据库转化的工作。涉及了比较多的GUID和UNID的操作。在SQL Server 2005中,uniquidentifier类型值总是可以用casting转化为定长的varchar类型。