如何在 SQL 中创建用于插入的序列号

本文关键字:用于 插入 序列号 创建 SQL | 更新日期: 2023-09-27 18:37:24

我正在将数据保存到表中,但我还需要一个带有序列号的列。我该怎么做?(我在 C# 中这样做,也许这很重要。

这一定很简单,但谷歌搜索并没有成功。

编辑:我不想只保存一个整数。我想给 SQL 一个命令在保存时创建它,因为如果我创建一个整数并在创建它和保存它之间保存它 – 另一个查询可能会尝试同时保存相同的数字,我会得到两个具有相同数字的条目。

如何在 SQL 中创建用于插入的序列号

使用 IDENTITY

CREATE TABLE YourTable
(
    ID INT IDENTITY
)

每次插入新记录时,SQL Server 都会负责为您递增此值(没有两条记录具有相同的数字,它是唯一的)。

最好的方法不是编程,而是让您的数据库自动创建一个递增字段。在 SQL Server 中,这称为标识列。

在您的插入语句中,您只需跳过该列,就好像它不存在一样,但 SQL Server 会自动递增并为您填充它。

唯一标识符解决了这个问题,但它不可伸缩,该列不适合创建聚集索引,因为生成的索引非常大,并且它的值不会全部增加(对定义良好的聚集索引的限制)。

关键字 IDENTITY 就足够了,您可以根据需要在整数数据类型中进行选择(smallint、int、bigint...),您可以通过函数 scope_identity() 安全地获取最后一个值

使用 sql 中可用的IDENTITY。下面是示例

CREATE TABLE Persons
(
P_Id int PRIMARY KEY IDENTITY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

参考

将序列号定义为主键NOT NULL和自动增量。希望这对你有帮助。

您如何看待使用 GUID(在 SQL Server 中也称为 UNIQUEIDENTIFIER 数据类型)?

DECLARE @myid uniqueidentifier = NEWID();
SELECT @myid