我想知道是否可以创建一个带有一个列的表,如果(格式:YYYY ##)得到一个自动增量的年份编号:
CRATE TABLE "Example"(
[Number] autoincrement(YYYY##),
[Text] nvarchar(30)
)
列'数'看起来怎么样?它甚至可能吗?
谢谢!
第2部分:
一年后的数字应该从每年的0开始。
示例输出:
2013-01
2013-02
2013-03
2014-01
答案 0 :(得分: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)
);
下面:
ID
是基础自动增量字段DateField
是一个DateTime部分,默认为当前日期DateIDChar
- 示例计算字段格式为varchar
DateIDId
- 示例计算字段格式为int
答案 1 :(得分:1)
据我所知,你不能用自动增量列来做到这一点。相反,您可以在创建记录的当天有一个额外的列。然后,当您想要使用自动增量输出列时,可以根据您的预期格式化输出。
即
CREATE TABLE "Example" (
[Number] autoincrement(YYYY##),
[Text] nvarchar(30),
[CreatedDate] datetime
)
-- output
select convert(varchar(4), year(CreatedDate)) + convert(varchar, Number)
希望这有帮助