SQL默认约束

时间:2013-07-16 19:10:28

标签: sql sql-server constraints default dateadd

我有一个包含2列dateRecieved和dateDue的表。我知道如何使用以下命令使dateNow列默认显示今天的日期:                                 DEFAULT GETDATE() 然后,用户可以将dateRecieved列修改为他们想要的任何日期。

用户修改dateRecieved列后;如何设置dateDue列,以便默认情况下显示距离dateRecieved几天的日期?

我看了这个答案,但我需要参考另一栏。 Need to add constraint: date plus 10 days

dateRecieved是否有办法在dateRecieved更改时自动修改其值? 用户应该能够覆盖这两列中的默认值。

我正在使用W3学校的sql教程,但它没有并且回答我在stackoverflow上找不到一个 http://www.w3schools.com/sql/sql_default.asp

use current date as default value for a column

由于

2 个答案:

答案 0 :(得分:1)

因此,当您说“用户修改”时,您正在谈论更新。

DEFAULT值仅与INSERT语句相关。

确实,您可以通过触发器完成您想要的任何自动UPDATE更改,但作为初学者,我会建议您远离触发器。它们很少被正确实现,并且当出现问题时更容易理解。

您要做的是插入您的行(允许任何DEFAULT值“发生”),然后使用您想要的值更新您的行。

答案 1 :(得分:0)

听起来你正在寻找的是一个等待更新完成的触发器,然后dateDue会自动更新。

这个答案可能会指出你正确的方向: How to: Create trigger for auto update modified date with SQL Server 2008