我想知道是否可以创建一个带有列的表,该列在if(Format:YYYY ##)前面的年份会自动递增:

CRATE TABLE "Example"(
[Number] autoincrement(YYYY##),
[Text] nvarchar(30)
)


“数字”列的外观如何?甚至有可能吗?

谢谢!

第2部分:

每年之后,年份后的数字应从0开始。

输出示例:

2013-01

2013-02

2013-03

2014-01

最佳答案

您可以使用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)
    );


SQLFiddle demo

这里:


ID是基本的自动递增字段
DateField是DateTime部分,默认为当前日期
DateIDChar-格式为varchar的示例计算字段
DateIDId-格式为int的示例计算字段

09-11 19:33
查看更多