SqlServer 生成流水号
时间: 2023-09-07 22:14:11 浏览: 58
在 SQL Server 中生成流水号可以使用自增列或者序列。
1. 自增列
自增列是一种特殊列,它会自动递增并分配唯一的值。在创建表时可以使用 IDENTITY 属性来定义自增列:
```sql
CREATE TABLE MyTable (
ID INT IDENTITY(1,1) PRIMARY KEY,
Name VARCHAR(50)
);
```
上面的代码创建了一个名为 MyTable 的表,其中包含一个自增列 ID 和一个名称列 Name。IDENTITY(1,1) 指定 ID 从 1 开始递增,每次递增的步长为 1。
要插入数据时,可以省略自增列的值,数据库会自动分配一个唯一的值:
```sql
INSERT INTO MyTable (Name) VALUES ('John');
INSERT INTO MyTable (Name) VALUES ('Mary');
```
2. 序列
序列是一种对象,它按照指定的步长递增并生成唯一的值。在 SQL Server 2012 及以上版本中可以使用序列来生成流水号。
首先需要创建一个序列:
```sql
CREATE SEQUENCE MySequence
START WITH 1
INCREMENT BY 1
MINVALUE 1
MAXVALUE 1000000;
```
上面的代码创建了一个名为 MySequence 的序列,它从 1 开始递增,每次递增的步长为 1,最小值为 1,最大值为 1000000。
要获取序列的下一个值,可以使用 NEXT VALUE FOR 函数:
```sql
SELECT NEXT VALUE FOR MySequence;
```
每次执行上面的语句都会返回序列的下一个值。
要插入数据时,可以使用序列的下一个值:
```sql
INSERT INTO MyTable (ID, Name) VALUES (NEXT VALUE FOR MySequence, 'John');
INSERT INTO MyTable (ID, Name) VALUES (NEXT VALUE FOR MySequence, 'Mary');
```