Uniqueidentifier数据类型


一.Uniqueidentifier数据类型
可存储16字节的二进制值
Uniqueidentifier用来存储一个全局唯一标识符,即GUID。GUID是唯一的二进制数:世界上的任何两台计算机都不会生成重复的GUID值

uniqueidentifier 值通常不定义为常量。
您可以按下列方式指定 uniqueidentifier 常量:
字符串格式:'6F9619FF-8B86-D011-B42D-00C04FC964FF'
二进制格式:0xff19966f868b11d0b42d00c04fc964ff

二.生成Uniqueidentifier值
1.使用NewID()函数为 uniqueIdentifier 数据类型赋值
NewID()函数是从他们的网卡上的标识数字和CPU时钟的唯一的数字生成新的UniqueIdentifier数据 ,这个数据和GUID是一样的每台计算机能生成全球唯一的值,这样在多台计算机和多网络之间生成具有唯一性的标识符
2.直接将字符串的常量转化成这样的格式 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
举例:6F9619FF-8B86-D011-B42D-00C04FC964FF 为有效的UniqueIdentifier数据
3.直接赋于32位的十六位数据
举例 0xffffffff00000000ffffffff00000000

三.uniqueidentifier和identity
uniqueidentifier 根据 NEWID 产生的值是唯一的,可以作为主键,IDENTITY 表示标识,也是自增的,可以作为主键
uniqueidentifier 数据类型不会按照 IDENTITY 属性的方式为插入的行自动生成新的 ID。
例如,若要获取新的 uniqueidentifier 值,则表必须具有指定 NEWID 函数或 NEWSEQUENTIALID 函数的 DEFAULT 子句,或 INSERT 语句必须使用 NEWID 函数。


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

原文地址:https://www.cnblogs.com/jiechn/p/4725326.html