使用当前日期作为列的默认值

时间:2011-04-19 14:40:52

标签: sql sql-server

有没有办法在Sql Server中将列的默认值设置为DateTime.Now

示例:

table Event
Id int (auto-increment) not null
Description nvarchar(50) not null
Date datetime not null

该行:

Insert into Event(Description) values('teste');

应该插入一行,Date值应该是当前日期。

9 个答案:

答案 0 :(得分:90)

使用GETDATE()函数添加默认约束作为值。

ALTER TABLE myTable 
  ADD CONSTRAINT CONSTRAINT_NAME
    DEFAULT GETDATE() FOR myColumn

答案 1 :(得分:17)

CREATE TABLE Orders(
    O_Id int NOT NULL,
    OrderNo int NOT NULL,
    P_Id int,
    OrderDate date DEFAULT GETDATE() // you can set default constraints while creating the table
)

答案 2 :(得分:3)

您可以使用:

Insert into Event(Description,Date) values('teste', GETDATE());

此外,您可以更改表格,以便“日期”具有默认值“GETDATE()”

答案 3 :(得分:2)

选择要在其中获取当前日期默认值

的表列名称
 ALTER TABLE 
 [dbo].[Table_Name]
 ADD  CONSTRAINT [Constraint_Name] 
 DEFAULT (getdate()) FOR [Column_Name]

更改表格查询

Alter TABLE [dbo].[Table_Name](
    [PDate] [datetime] Default GetDate())

答案 4 :(得分:0)

要使用当前日期作为日期列的默认,您需要:

1 - 打开表设计器

2 - 选择列

3 - 转到专栏

4 - 默认值或绑定的值设置为( getdate()

enter image description here

答案 5 :(得分:0)

表创建语法可以是:

Create table api_key(api_key_id INT NOT NULL IDENTITY(1,1) 
PRIMARY KEY, date_added date DEFAULT 
GetDate());

插入查询语法可以是:

Insert into api_key values(GETDATE());

答案 6 :(得分:0)

我也遇到了我的数据库项目的这种需求。我决定在这里分享我的发现。

1)如果数据已经存在(Can I add a not null column without DEFAULT value

,那么没有默认值的情况下,没有方法不能将NOT NULL字段设为

2)这个主题已经解决了很长时间了。这是2008年的问题(Add a column with a default value to an existing table in SQL Server

3)DEFAULT约束用于为列提供默认值。如果未指定其他值,则默认值将添加到所有新记录中。 (https://www.w3schools.com/sql/sql_default.asp

4)我用于开发的Visual Studio数据库项目非常适合为您生成更改脚本。这是为数据库升级创建的更改脚本:

GO
PRINT N'Altering [dbo].[PROD_WHSE_ACTUAL]...';

GO
ALTER TABLE [dbo].[PROD_WHSE_ACTUAL]
    ADD [DATE] DATE DEFAULT getdate() NOT NULL;

-

以下是我使用Visual Studio更新数据库以进行开发的步骤。

1)添加默认值(Visual Studio SSDT:数据库项目:表设计器) enter image description here

2)使用“模式比较”工具生成更改脚本。

code already provided above

3)在应用更改之前查看数据。 enter image description here

4)应用更改后查看数据。 enter image description here

答案 7 :(得分:0)

右键单击表,然后单击“设计”,然后单击要设置默认值的列。

然后在页面底部的列属性中设置默认值或绑定到:'getdate()'

答案 8 :(得分:0)

在我看来更容易记住的解决方案:

alter table table_name add column date datetime default current_timestamp