有没有办法在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值应该是当前日期。
答案 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)
答案 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:数据库项目:表设计器)
2)使用“模式比较”工具生成更改脚本。
code already provided above
答案 7 :(得分:0)
右键单击表,然后单击“设计”,然后单击要设置默认值的列。
然后在页面底部的列属性中设置默认值或绑定到:'getdate()'
答案 8 :(得分:0)
在我看来更容易记住的解决方案:
alter table table_name add column date datetime default current_timestamp