SQLServer中的uniqueidentifier类型
在学习CS系统的时候,发现一个有趣的问题:CS系统中数据库设计与我们常用的方法有所不同,其中一条就是用uniqueidentifier类型的字段作为数据的全局唯一标识符。仔细查了一下SQL Server联机丛书,发现了如下说明:
uniqueidentifier
全局唯一标识符 (GUID)。
![](/Images/OutliningIndicators/None.gif)
注释
uniqueidentifier 数据类型的列或局部变量可用两种方法初始化为一个值:
![](/Images/OutliningIndicators/None.gif)
使用 NEWID 函数。
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
将字符串常量转换为如下形式(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,其中每个 x 是 0-9 或 a-f 范围内的一个十六进制的数字)。例如,6F9619FF-8B86-D011-B42D-00C04FC964FF 即为有效的 uniqueidentifier 值。
比较运算符可与 uniqueidentifier 值一起使用。然而,排列并非通过比较两个值的位模式来实现。允许对 uniqueidentifier 值执行的操作只有比较 (=, <>, <, >, <=, >=) 和检查 NULL(IS NULL 和 IS NOT NULL)。不允许使用其它算术运算符。所有的列约束及属性(IDENTITY 除外)均允许用于 uniqueidentifier 数据类型。 这才明白CS系统里的那些xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx样式的数据原来是这么回事,而且个人认为这种类型在数据安全方面应该表现的不错。
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)