use current date as default value for a column
有没有办法在SQL Server中将列的默认值设置为
例子:
1 2 3 4 | TABLE Event Id INT (auto-INCREMENT) NOT NULL Description nvarchar(50) NOT NULL DATE datetime NOT NULL |
行:
1 | INSERT INTO Event(Description) VALUES('teste'); |
号
应插入一行,日期值应为当前日期。
添加一个以getDate()函数为值的默认约束。
1 2 3 | ALTER TABLE myTable ADD CONSTRAINT CONSTRAINT_NAME DEFAULT GETDATE() FOR myColumn |
1 2 3 4 5 6 | 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 ) |
您可以使用:
1 | INSERT INTO Event(Description,DATE) VALUES('teste', GETDATE()); |
号
此外,还可以更改表,使"日期"具有默认值"getDate()"
选择要在其中获取当前日期默认值的表列名
1 2 3 4 | ALTER TABLE [dbo].[TABLE_NAME] ADD CONSTRAINT [Constraint_Name] DEFAULT (getdate()) FOR [Column_Name] |
。
更改表查询
1 2 | ALTER TABLE [dbo].[TABLE_NAME]( [PDate] [datetime] DEFAULT GetDate()) |
我也遇到了对我的数据库项目的这种需求。我决定在这里分享我的发现。
1)当数据已经存在时,如果没有默认值,则无法访问非空字段(可以添加没有默认值的非空列吗)
2)这个话题已经讨论很久了。这是一个2008问题(在SQL Server中的现有表中添加一个具有默认值的列)
3)默认约束用于为列提供默认值。如果未指定其他值,则默认值将添加到所有新记录中。(https://www.w3schools.com/sql/sql_default.asp)
4)我用于开发的Visual Studio数据库项目非常适合为您生成更改脚本。这是为我的数据库升级创建的更改脚本:
1 2 3 4 5 6 | GO PRINT N'Altering [dbo].[PROD_WHSE_ACTUAL]...'; GO ALTER TABLE [dbo].[PROD_WHSE_ACTUAL] ADD [DATE] DATE DEFAULT getdate() NOT NULL; |
-
以下是我使用Visual Studio for Development更新数据库所采取的步骤。
1)添加默认值(Visual Studio SSDT:DB项目:表设计器)氧化镁
2)使用模式比较工具生成变更脚本。
1 | code already provided above |
。
3)在应用更改之前查看数据。氧化镁
4)应用更改后查看数据。氧化镁
表创建语法可以类似于:
1 2 3 | CREATE TABLE api_key(api_key_id INT NOT NULL IDENTITY(1,1) PRIMARY KEY, date_added DATE DEFAULT GetDate()); |
。
插入查询语法可以类似于:
1 | INSERT INTO api_key VALUES(GETDATE()); |
。
要将当前日期用作日期列的默认日期,您需要:
1-打开表设计器
2-选择列
3-转到列属性
4-设置默认值的值或绑定到(getDate())
。