【问题标题】:How to set Auto Increment Values in asp.net, sql server [duplicate]如何在asp.net,sql server中设置自动增量值[重复]
【发布时间】:2013-10-31 07:18:00
【问题描述】:

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

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

下面的格式怎么办?

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

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

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

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

【问题讨论】:

  • 你能举个例子吗?

标签: asp.net .net sql sql-server sql-server-2008


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-05
      • 2012-12-01
      • 2013-04-21
      • 2021-01-07
      • 1970-01-01
      • 2018-11-30
      • 1970-01-01
      • 2013-12-11
      相关资源
      最近更新 更多