Maison > Article > base de données > sql uniqueidentifier数据类型详解
uniqueidentifier数据类型可存储16字节的二进制值,其作用与全局唯一标记符(GUID)一样。GUID是唯一的二进制数:世界上的任何两台计算机都不会生成重复的GUID值。
在SQL中 ROWGUIDCOL表示新列是行的全局唯一标识列。对于每个表只能指派一个uniqueidentifier 列作为ROWGUIDCO列。ROWGUIDCOL属性只能指派给uniqueidentifier列
uniqueidentifier数据类型的赋值方法:
1.使用NewID()函数来实现
2.直接将字符串的常量转化为xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
例如:6F9619FF-8B86-D011-B42D-00C04FC964FF
3.直接赋予32位的十六位数据
例如: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转化为定长(32)的varchar类型。