Ari*_*MAZ 2 sql sql-server select
我正在尝试在 sql 中生成自定义自动增量功能。我的自定义自动增量 ID 应该如下所示...
S1501.001
Run Code Online (Sandbox Code Playgroud)
“S”是供应商名称的第一个字母。
“15”是今年的最后两位数字。
“01”是今天的月份
“。” 将永远在那里
“001”是我的增量器。
计数器将继续如下
S1501.001
S1501.002
S1501.003
S1501.004
Run Code Online (Sandbox Code Playgroud)
首先,我必须找到“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
Run Code Online (Sandbox Code Playgroud)
最好的解决方案是使用
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....
)
Run Code Online (Sandbox Code Playgroud)
现在,每次插入一行tblCompany而不为IDor指定值时CompanyID:
INSERT INTO dbo.tblCompany(Col1, Col2, ..., ColN)
VALUES (Val1, Val2, ....., ValN)
Run Code Online (Sandbox Code Playgroud)
那么 SQL Server 将自动且安全地增加您的ID值,CompanyID并将包含诸如S1501.001、S1501.002、......等值- 自动、安全、可靠、无重复。
| 归档时间: |
|
| 查看次数: |
7466 次 |
| 最近记录: |