gpt4 book ai didi

sql-server - 使用 varchar 数据类型自动递增主键列

转载 作者:行者123 更新时间:2023-12-04 23:49:41 30 4
gpt4 key购买 nike

CREATE TABLE Persons
(
P_Id varchar(6) NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
PRIMARY KEY (P_Id)
)

在这个表中P_Id是主键。我们希望在开始时使用默认值 (PN00) 生成 P_Id 的自动增量,同时仅插入 LastName 和 FirstName。例如:-PN001 表示第一个条目,PN002 表示第二个条目,PN003 表示第三个条目,依此类推。

最佳答案

唯一可行的解​​决方案是使用

  • ID INT IDENTITY(1,1) 列让 SQL Server 处理数值的自动递增
  • 一个计算的、持久的列,用于将该数值转换为您需要的值

所以试试这个:

CREATE TABLE dbo.Persons
(ID INT IDENTITY(1,1) NOT NULL PRIMARY KEY CLUSTERED,
P_ID AS 'PN' + RIGHT('00000' + CAST(ID AS VARCHAR(5)), 5) PERSISTED,
.... your other columns here....
)

现在,每次您在 Persons 中插入一行而不指定 IDP_ID 的值时:

INSERT INTO dbo.Persons(Col1, Col2, ..., ColN)
VALUES (Val1, Val2, ....., ValN)

然后 SQL Server 将自动且安全地增加您的 ID 值,并且 P_Id 将包含像 PN00001 这样的值、PN00002、……等等——自动、安全、可靠、无重复。

关于sql-server - 使用 varchar 数据类型自动递增主键列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32331265/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com