MSSQL中基于主键自动生成机制研究
Microsoft SQL Server是一种体系中许多数据库系统所使用的非常流行的关系数据库管理系统(RDBMS),已被广泛利用于各种利用程序所需要的数据存储和操作。一个关系数据库由多个表组成,每一个表都由若干列组成,列或属性描写了该表中的数据,而每一个表都有一个主键自动生成机制,其用于标识表中的每行数据。
MSSQL中的主键自动生成机制主要支持三种主键生成,即自增(Identity)、GUID和序列(Sequence)。
1)自增(Identity),也称作自动编号,是数据库经常使用的一种自动增长主键,具有自增特性,一般用于记录信息。我们可以在创建表时,为主键定义自增特性,这样不管插入的数据如何,主键值总是顺次排列,不重复,不重复集。在MSSQL中实现该功能需要在建表时定义IDENTITY:
`create table T_People
(
ID int primary key identity,
Name varchar(50) not null
)`
2)GUID,全称为全局唯一标识符(globally-unique identifier),用于标识表中每行数据的唯一性。GUID经常使用15和16进制数,但MSSQL是以16进制字符串格式存储和辨认。GUID主键用于确保数据表中不会出现重复的值,并且在网络上能够动态添加时保证每条记录唯一。在MSSQL中实现该功能需要在建表时定义UNIQUEIDENTIFIER:
`create table T_People
(
GUID uniqueidentifier primary key default newid(),
Name varchar(50) not null
)`
3)序列(Sequence),它是一个在一个定义的范围内顺次产生一组数的集合,它的行动类似于自增,但与自增区别的是,它有起止值、有步长、可以从当前值重新向后排序等特性。在MSSQL中实现该功能需要使用CREATE SEQUENCE语句创建序列,并授权定义的程序可使用该对象,然后使用NEXT VALUE FOR语句调用序列:
`–创建序列
create sequence Sequence_People
start with 1
increment by 1
–调用序列
INSERT INTO T_People VALUES(next value for Sequence_People,’张三’)`
一般来讲,MSSQL用户在主键生成中会选择自增或GUID作为首选,自增用于数据量较小的情境,而GUID比自增更合适于数据量较大的情况,而序列有更多的灵活性,可以实现游标检索等操作,合适嵌入代码中进行动态插入主键操作。
本文来源:https://www.yuntue.com/post/94480.html | 云服务器网,转载请注明出处!

微信扫一扫打赏
支付宝扫一扫打赏