在学习CS系统的时候,发现一个有趣的问题:CS系统中数据库设计与我们常用的方法有所不同,其中一条就是用uniqueidentifier类型的字段作为数据的全局唯一标识符。仔细查了一下SQL Server联机丛书,发现了如下说明:
uniqueidentifier
全局唯一标识符 (GUID)。

注释
uniqueidentifier
数据类型的列或局部变量可用两种方法初始化为一个值:

使用
NEWID
函数。


将字符串常量转换为如下形式(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样式的数据原来是这么回事,而且个人认为这种类型在数据安全方面应该表现的不错。










