mssql sqlserver 自增长ID的另类实现-NEWSEQUENTIALID()


摘要:
下文将分享sql server设计自增长ID的另类方法,如下所示:
实验环境:sql server 2008 R2


常见数据表设计中,自增长ID的设计方法,有以下几种方式:
1.设置一个标识列,定义标识种子和步长,让sqlserver自动增长
2.建立一张专用表,手动控制自增列
3.设置一列,列默认值放入NEWSEQUENTIALID()函数自动生成

NEWSEQUENTIALID()

NEWSEQUENTIALID() 将生成一个自增的guid类型,guid可以保证数据库合并时,不会出现主键重复。

NEWSEQUENTIALID() 生成主键,举例说明:

   create table [maomao365.com]
(
keyId UNIQUEIDENTIFIER  PRIMARY KEY  DEFAULT (NEWSEQUENTIALID()),
info varchar(88) not null 
)
go
insert [maomao365.com] (info) values ('sqlserver教程')
insert [maomao365.com] (info) values ('sqlserver')
insert [maomao365.com] (info) values ('数据初始化')
insert [maomao365.com] (info) values ('数据测试') 
go
select * from [maomao365.com]

go
insert [maomao365.com] (info) values (N'自增长测试')
go
select keyId from [maomao365.com]

go
truncate table [maomao365.com]
drop     table [maomao365.com]

mssql_sqlserver_NewSequentialID

mssql_sqlserver_NewSequentialID