我有一个包含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
由于
答案 0 :(得分:1)
因此,当您说“用户修改”时,您正在谈论更新。
DEFAULT值仅与INSERT语句相关。
确实,您可以通过触发器完成您想要的任何自动UPDATE更改,但作为初学者,我会建议您远离触发器。它们很少被正确实现,并且当出现问题时更容易理解。
您要做的是插入您的行(允许任何DEFAULT值“发生”),然后使用您想要的值更新您的行。
答案 1 :(得分:0)
听起来你正在寻找的是一个等待更新完成的触发器,然后dateDue会自动更新。
这个答案可能会指出你正确的方向: How to: Create trigger for auto update modified date with SQL Server 2008