gpt4 book ai didi

SQL Server - 创建自定义自增字段

转载 作者:行者123 更新时间:2023-12-05 01:47:20 24 4
gpt4 key购买 nike

我正在尝试在 sql 中生成自定义自动递增功能。我的自定义自动增量 ID 应该如下所示...

S1501.001

“S”代表供应商名称的第一个字母。

“15”是今年的最后 2 位数字。

“01”是今天的月份

“。”会一直在的

“001”是我的增量器。

计数器会像下面这样继续

S1501.001
S1501.002
S1501.003
S1501.004

首先,我必须找到“S1501”。并在末尾找到具有最高数字的 ID。我可以创建一个新的“S1501.005”。我该怎么做?

我做了一些事情,但没有奏效。

SELECT TOP 1 (SELECT SUBSTRING('S1501.001', 7,3)),* 
FROM LG_001_01_SERILOTN
WHERE CODE LIKE SUBSTRING('S1501.001', 1,6)+'%'
ORDER BY (SELECT SUBSTRING('S1501.001', 7,3)) DESC

最佳答案

最好的解决办法是使用

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

那么试试这个:

CREATE TABLE dbo.tblCompany
(ID INT IDENTITY(1,1) NOT NULL PRIMARY KEY CLUSTERED,
CompanyID AS 'S1501.' + RIGHT('000' + CAST(ID AS VARCHAR(3)), 3) PERSISTED,
.... your other columns here....
)

现在,每次向 tblCompany 中插入一行没有为 ID 指定值或 CompanyID :

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

然后 SQL Server 将自动且安全地增加您的 ID值(value),和CompanyID将包含类似 S1501.001 的值, S1501.002 ,......等等——自动、安全、可靠、无重复。

关于SQL Server - 创建自定义自增字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27845180/

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