【问题标题】:SQL Default ConstraintSQL 默认约束
【发布时间】:2013-07-16 19:10:27
【问题描述】:

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

用户修改dateRecieved列后;如何设置 dateDue 列,使其默认显示距 dateRecieved x 天的日期?

我查看了这个答案,但我需要参考另一列。 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

谢谢

【问题讨论】:

    标签: sql sql-server constraints default dateadd


    【解决方案1】:

    因此,当您说“用户修改”时,您指的是更新。

    DEFAULT 值仅与 INSERT 语句相关。

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 谢谢,这个链接很有用。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-02
      • 2020-12-11
      • 2012-06-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多