2013-11-20 61 views
2

創建專欄中,我想知道是否有可能創建與使用了一年的前面,如果數量自動增量列的表(格式:YYYY ##):與年度和自動增量

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

列'數字'的外觀如何?它甚至有可能嗎?

謝謝!

第2部分:

年背後的數量應該逐年之後,從0開始。

輸出示例:

2013-01

2013-02

2013-03

2014-01

+0

你正在使用哪些DBMS? –

+0

Microsoft SQL Server管理工作室 –

+1

Microsft SQL Server是DataBase管理系統,Microsoft SQL Server Management Studio是用於使用Microsoft SQL Server的工具:-) –

回答

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

SQLFiddle demo

這裏:

  • ID是鹼自動增量字段
  • DateField被一個DateTime部分與當前日期作爲默認
  • DateIDChar - 例如計算字段 - 格式化爲varchar
  • DateIDId示例計算場格式化爲int
+0

老兄,這就像我能得到的最佳答案:D謝謝你非常多 –

+1

你可以再做一次ID嗎?如果它從每個yeahr之後的0開始,都會很棒 –

1

據我所知,你不能做到這一點與自動增量列。相反,您可以在創建記錄的那一天添加一列。然後,當您想輸出帶有自動增量的列時,可以根據您的規格格式化輸出。

CREATE TABLE "Example" (
[Number] autoincrement(YYYY##), 
[Text] nvarchar(30), 
[CreatedDate] datetime 
) 

-- output 
select convert(varchar(4), year(CreatedDate)) + convert(varchar, Number) 

希望這有助於