2013-10-31 59 views
-1

我已经创建了一个表,并且创建了一个名为OrderNo的主键。我想OrderNo也是自动增量。如何在asp.net,sql server中设置自动递增值

我该如何做以下格式?

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

这里ABC是我的公司名称(默认), 2013是本年度, 2是我公司 和0001的年龄是文档否(流水号)

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

有没有一种方法可以在SQL Server中执行此操作?

+0

你能举一些例子吗? – Mathi

回答

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) 
) 

您可以根据需要修改的权利,以覆盖尽可能多的数字,或者你可能不希望前导零:

PIC_ID AS 'PIC' + CAST(ID as varchar(10)) 
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) 
) 
相关问题