SEQUENCE:数据库中的序列生成器
在数据库管理中,经常需要生成唯一且递增的数值序列,用于作为主键或其他需要唯一标识的列的值。为了实现这一功能,SQL Server 引入了 SEQUENCE 对象。SEQUENCE 是一个独立的数据库对象,用于生成一个数值序列,并且这个序列可以在多个表之间共享。
与传统的标识列相比,SEQUENCE 提供了更大的灵活性和控制力。它允许我们定义序列的起始值、增量、最大值和最小值等属性,并且可以独立于表进行创建和管理。
下面是一个使用 SEQUENCE 的简单代码案例:
首先,我们需要创建一个 SEQUENCE 对象。假设我们要创建一个名为 MySequence
的序列,起始值为 1,增量为 1,没有最大值限制:
CREATE SEQUENCE MySequence
AS INT
START WITH 1
INCREMENT BY 1
NO MAXVALUE;
建立测试表数据:
--测试数据
if not object_id(N'MyTable') is null
drop table MyTable
Go
Create table MyTable([ID] int,[Name] nvarchar(24))
Insert MyTable
select 1,N'Join'
Go
--测试数据结束
Select * from MyTable
使用SEQUENCE增长数据
INSERT INTO MyTable (ID, Name)
VALUES (NEXT VALUE FOR MySequence, 'John Doe');
结果: