有没有办法DateTime.Now
在Sql Server中将列的默认值设置为?
例:
table Event
Id int (auto-increment) not null
Description nvarchar(50) not null
Date datetime not null
该行:
Insert into Event(Description) values('teste');
应该插入一行,并且Date值应该是当前日期。
Answers:
使用GETDATE()函数作为值添加默认约束。
ALTER TABLE myTable
ADD CONSTRAINT CONSTRAINT_NAME
DEFAULT GETDATE() FOR myColumn
CONSTRAINT
关键字。应该是 ... ADD CONSTRAINT MY_CONSTRAINT_NAME ...
GETDATE()
给我们UTC时间?
我也遇到了我的数据库项目的这种需求。我决定在这里分享我的发现。
1)当数据已经存在时,没有方法没有默认值就不能没有NOT NULL字段(我可以添加没有DEFAULT值的not null列)
2)这个主题已经解决了很长时间。这是2008年的问题(向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
右键单击表,然后单击“设计”,然后单击要设置默认值的列。
然后在页面底部的列属性中将默认值或绑定设置为:'getdate()'