2014-01-16 17 views
0

我有以下SQL定義:使我列一個默認的dateCreated會以當前時間

CREATE TABLE [dbo].[James] (
    [JamesID] INT   IDENTITY (1, 1) NOT NULL, 
    [Name] NVARCHAR (255) NOT NULL, 
    [DateCreated] DATETIME NULL, 
    CONSTRAINT [PK_dbo.James] PRIMARY KEY CLUSTERED ([JamesID] ASC) 
); 
  1. 如何可能我做起來很新條目有dateCreated會填寫時自動創建新條目。

  2. 那些沒有填寫該列的現有數據呢?

回答

0

如果你是從頭開始,並假設這是SQL服務器:

CREATE TABLE [dbo].[James] (
    [JamesID] INT   IDENTITY (1, 1) NOT NULL, 
    [Name] NVARCHAR (255) NOT NULL, 
    [DateCreated] DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, 
    CONSTRAINT [PK_dbo.James] PRIMARY KEY CLUSTERED ([JamesID] ASC) 
); 

如果你要更新的表,你可以使用這個:

ALTER TABLE dbo.James 
ADD CONSTRAINT DF_namehere DEFAULT CURRENT_TIMESTAMP FOR DateCreated; 

然而,任何電流NULL值將保持NULLALTER TABLE解決方案。如果你想回填信息,你想如何解決這個問題。

+0

感謝man,儘管將定義從NULL更改爲NOT NULL不幸的是無法正常工作,但這可能是因爲visual studio糾正了我。這很有幫助,謝謝。 – Jimmyt1988

+0

這可能是因爲你已經在表中有NULL值了?我不確定你想如何處理沒有與他們關聯的日期信息的舊條目... – aensm

相關問題