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

时间:2015-01-08 16:41:11

标签: sql sql-server select

我正在尝试在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

1 个答案:

答案 0 :(得分:2)

最佳解决方案是使用

  • 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中插入一行而未指定IDCompanyID的值时:

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

然后SQL Server将自动且安全地增加ID值,而CompanyID将包含S1501.001S1501.002等值。 ....等等 - 自动,安全,可靠,无重复。