2011-04-19 45 views
52

有没有办法在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'); 

应插入一行和日期值应为当前日期。

+1

该链接可能是有用的太 - HTTP:/ /blog.sqlauthority.com/2013/05/10/sql-server-adding-column-defaulting-to-current-datetime-in-table/ – Steam 2013-10-26 05:30:16

回答

82

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

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

在PostgreSQL中,它将是: “alter table myTable add column mydatecol date default现在();” ..我只添加这个评论,因为在问题的标题中没有提到Sql-Server。可以帮助PostgreSQL用户... – alfonx 2011-07-09 12:12:29

+0

如果该列已经存在于表中,这将是表单,并且如果在INSERT语句(或从CURSOR插入)中忽略该值,则没有限制来设置默认值。 – 2013-06-08 11:34:38

+0

有没有办法通过管理工作室来做到这一点? – Steam 2013-10-26 05:28:40

3

您可以使用:

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

另外,你可以改变你的表格,使得 '日期' 有一个默认, “GETDATE()”

+0

确定将“默认值或绑定”设置为“getdate()” – Moji 2015-08-17 15:28:28

13
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

此表单设置了一个未命名的约束。最好命名约束:'[...] OrderDate DATE CONSTRAINT DF_Orders_date DEFAULT GETDATE()[...]' – 2013-06-08 11:35:45

2

选择表列名您想要获取当前日期的默认值的地方

ALTER TABLE 
[dbo].[Table_Name] 
ADD CONSTRAINT [Constraint_Name] 
DEFAULT (getdate()) FOR [Column_Name] 

ALTER TABLE查询

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

要使用当前日期默认的日期栏,你将需要:

打开表设计

2 -选择列

3-去柱proprerties

4-设置默认值的值或结合 propriete向(GETDATE()

enter image description here

相关问题