SQL Server中的uniqueidentifier类型

时间:2023-03-09 15:21:22
SQL Server中的uniqueidentifier类型

uniqueidentifier类型可以配合T-SQL中的newid和newsequentialid来生成唯一标识符,具体区别如下(摘抄自微软官方文档)。

Nonsequential GUIDs: You can generate nonsequential global unique identifiers to be stored in an attribute of a UNIQUEIDENTIFIER type. You can use the T-SQL function NEWID to generate a new GUID, possibly invoking it with a default expression attached to the column. You can also generate one from anywhere. for example, the client by using an application programming interface (API) that generates a new GUID. The GUIDs are guaranteed to be unique across space and time.

Sequential GUIDs: You can generate sequential GUIDs within the machine by using the T-SQL function NEWSEQUENTIALID.

测试代码:

create table t_1(
id uniqueidentifier ROWGUIDCOL primary key default NEWSEQUENTIALID(),
value int
)
create table t_2(
id uniqueidentifier ROWGUIDCOL primary key default NEWID(),
value int
) insert into t_1(value) values (1)
insert into t_1(value) values (2)
insert into t_1(value) values (3)
insert into t_1(value) values (4)
insert into t_1(value) values (5) insert into t_2(value) values (1)
insert into t_2(value) values (2)
insert into t_2(value) values (3)
insert into t_2(value) values (4)
insert into t_2(value) values (5) select *,rowguidcol from t_1
select *,rowguidcol from t_2

SQL Server中的uniqueidentifier类型