-1

我创建了一个表,主键名为OrderNo.

但是,我也希望OrderNo自动递增。

我该怎么做以下格式?

"ABC201320001", "ABC201320002", "ABC201320003", ............ etc.

这里 ABC 是我的公司名称(默认),2013 是当前年份,2 是我公司的年龄,0001 是文档编号(运行编号)

这里的自动增量(ABC0001,ABC0002,...)运行良好...但问题是如何根据当前获得我公司的当前年份(2013,..)和年龄(2,..)增量年更改为明年。

有没有办法在 SQL Server 中做到这一点?

4

2 回答 2

3

使用一个IDENTITY和一个计算列

CREATE TABLE Tablename (
 ID int NOT NULL IDENTITY (1, 1),
 ...
 ...
 /*gives 000-999. Change the RIGHT as needed to give more*/
 PIC_ID AS 'PIC' + RIGHT('000000000' + CAST(ID as varchar(10)), 3)

 CONSTRAINT PK_name PRIMARY KEY CLUSTERED (PIC_ID)
 )

您可以根据需要更改 RIGHT 以覆盖尽可能多的数字,或者您可能不想要前导零:

 PIC_ID AS 'PIC' + CAST(ID as varchar(10))
于 2013-10-31T07:27:38.440 回答
0

在您的情况下,它看起来像这样:

create table tablename
(
  ID int identity (0000, 1),
  PIC_ID as 'PIC'+right('0000'+cast(ID as varchar(5)), 5) persisted,
  constraint PK_tablename primary key (ID)
)
于 2013-10-31T07:56:37.110 回答