uniqueidentifier中文含义“唯一的标识符”。
uniqueidentifier数据类型是16个字节的二进制值,应具有唯一性,必须与NEWID()函数配合使用。
uniqueidentifier数据类型与identity自增不同,不会为插入的新行自动生成新的ID,新值由NEWID()函数指定。
NEWID()函数值会生成全球唯一的标识,标识由网卡号和CPU时钟组成,如:6F9619FF-8B86-D011-B42D-00C04FC964FF。
一个表可以定义多个uniqueidentifier列。
对变量使用NEWID()函数
-- Creating a local variable with DECLARE/SET syntax. |
在 CREATE TABLE 语句中使用 NEWID
-- Creating a table using NEWID for uniqueidentifier data type. |
使用 uniqueidentifier 和变量赋值,将名为 @myid 的局部变量声明为 uniqueidentifier 数据类型的变量。然后使用 SET 语句为该变量赋值。
DECLARE @myid uniqueidentifier |
uniqueidentifier 数据类型具有下列缺点:
- 值长且难懂。这使用户难以正确键入它们,并且更难记住。
- 这些值是随机的,而且它们不支持任何使其对用户更有意义的模式。
- 也没有任何方式可以决定生成 uniqueidentifier 值的顺序。它们不适用于那些依赖递增的键值的现有应用程序。
- 当 uniqueidentifier 为 16 字节时,其数据类型比其他数据类型(例如 4 字节的整数)大。这意味着使用 uniqueidentifier 键生成索引的速度相对慢于使用 int 键生成索引的速度。
- 只对没有其他适用的数据类型的范围非常窄的方案使用 GUID。
完