使用Year和autoincrement创建列

den*_*ütz 2 t-sql sql-server datetime auto-increment

我想知道是否可以创建一个带有一个Column的表,如果(格式:YYYY ##)得到一个自动递增的年份数:

CRATE TABLE "Example"(
[Number] autoincrement(YYYY##),
[Text] nvarchar(30)
) 
Run Code Online (Sandbox Code Playgroud)

列'数'看起来怎么样?甚至可能吗?

谢谢!

第2部分:

年度背后的数字应该从每年的0开始.

示例输出:

2013-01

2013-02

2013-03

2014-01

val*_*lex 5

您可以使用Computed Columns

例如:

 CREATE TABLE T 
    (
        ID int IDENTITY (1,1) NOT NULL, 
        DateField datetime DEFAULT (getdate()),
        DateIDChar AS CAST(YEAR(DateField) AS Varchar)+'-'+CAST(ID as VARCHAR),
        DateIDInt AS YEAR(DateField) * 10000+ID,
        SampleField varchar(100)
    );
Run Code Online (Sandbox Code Playgroud)

SQLFiddle demo

这里:

  • ID 是一个基础自动增量字段
  • DateField 是DateTime部分,默认为当前日期
  • DateIDChar - 示例计算字段格式化为 varchar
  • DateIDId - 示例计算字段格式化为 int