将我的一个列默认为DateCreated为当前时间

时间:2014-01-16 15:54:46

标签: sql

我有以下SQL定义:

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. 那些没有填写该列的现有数据呢?

1 个答案:

答案 0 :(得分:0)

如果您从头开始并假设这是SQL Server:

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解决方案保持一致。如何解决这个问题取决于您是否要回填信息。